ODBC
ODBC(开放式数据库连接) 通过运行 PlaidLink 代理的机器上的 ODBC 设置访问数据库。对于没有专用 PlaidCloud 连接器的数据库,可在代理步骤(例如 Agent Remote Export of SQL Result 步骤)中使用。创建时,请选择 ODBC 作为连接类型。
ODBC 连接有两种工作方式:
- 通过 DSN。 将 ODBC 驱动程序留空,并指定代理所在机器上已设置的数据源(DSN)。DSN 保存驱动程序、服务器、数据库以及其他驱动程序设置,连接属性可以覆盖这些设置。适用于任何 ODBC 驱动程序。
- 通过驱动程序。 选择或输入代理所在机器上已安装的 ODBC 驱动程序,然后提供服务器和数据库。PlaidCloud 会向驱动程序传递
Server和Database设置,其后是所有连接属性。适用于 Microsoft 的 SQL Server 驱动程序。对于其他驱动程序,包括列表中建议的其他驱动程序,请使用 DSN。
每种数据库的 ODBC 驱动程序都有各自的设置。无论是创建 DSN 还是编写连接属性,请参阅驱动程序供应商的文档,了解其接受的关键字。
在代理所在机器上创建 DSN
Section titled “在代理所在机器上创建 DSN”在代理运行的机器上将 DSN 设置为系统 DSN,这样无论代理以哪个账户运行都能找到它。
在 Windows 上
Section titled “在 Windows 上”- 打开 ODBC 数据源(64 位)。
- 在 系统 DSN 选项卡上,添加一个使用该数据库 ODBC 驱动程序的数据源,并输入服务器、数据库以及驱动程序要求的其他设置。
- 记下数据源名称。您需要在连接中输入它。
在 Linux 上
Section titled “在 Linux 上”在 Linux 上,代理通过 unixODBC 访问 ODBC。
-
安装 unixODBC 和该数据库的 ODBC 驱动程序。
-
检查驱动程序是否已在
odbcinst.ini中注册,以方括号中的名称为准。大多数驱动程序包会在安装时自动注册,odbcinst -q -d可列出已注册的驱动程序。 -
将数据源添加到系统的
odbc.ini中,作为以 DSN 命名的节。将Driver设置为已注册的驱动程序名称,并添加服务器、数据库以及驱动程序要求的其他设置:[Sales]Driver=ODBC Driver 18 for SQL ServerServer=sales-db.example.comDatabase=Sales -
记下节名称,此处为
Sales。您需要在连接中输入它。
odbcinst -j 会显示系统 odbcinst.ini 和 odbc.ini 的位置,通常在 /etc 下。位于用户自己的 ~/.odbc.ini 中的 DSN,只有在代理以该用户身份运行时才能被找到。
PlaidLink 容器映像包含 unixODBC,但不包含 ODBC 驱动程序。要在 Docker 或 Kubernetes 中运行的代理里使用 ODBC,请基于该映像构建一个安装了驱动程序的新映像,并将包含 DSN 的系统 odbc.ini 添加到映像中,或将其挂载到容器中。该映像以 plaid 用户运行,因此安装驱动程序时需切换到 root,完成后再切换回 plaid。
| 字段 | 必填 | 说明 |
|---|---|---|
| ODBC 驱动程序 | 否 | 留空则通过 DSN 连接。否则填写代理所在机器上已安装的 ODBC 驱动程序名称,须与该机器注册的名称完全一致:在 Windows 上,与 ODBC 数据源(64 位) 的驱动程序选项卡中列出的名称一致;在 Linux 上,与 odbcinst.ini 中的节名称一致。列表提供常用驱动程序,也可输入其他名称。此处仅 Microsoft 的 SQL Server 驱动程序可用。对于其他驱动程序,包括列表提供的其他驱动程序,请留空并使用 DSN。驱动程序名称不能包含花括号或分号。 |
| 数据源名称(DSN)或服务器 | 是 | 未使用驱动程序时,为代理所在机器上系统 DSN 的名称。使用驱动程序时,为数据库服务器的主机名;SQL Server 使用非默认端口时,为 host,port。 |
| 数据库 | 使用驱动程序时 | 要打开的数据库。未使用驱动程序时不可用,因为 DSN 自带数据库名称,且保存时会拒绝没有驱动程序的数据库。 |
| 连接属性 | 否 | 驱动程序的其他设置,格式为以 ; 分隔的 KEY=value 键值对。请参阅连接属性。 |
连接没有端口字段。对于使用非默认端口的 SQL Server,请将端口以 host,port 的形式添加到服务器中,因为 Microsoft 的 SQL Server 驱动程序不接受端口关键字。使用 DSN 时,请在 DSN 中设置端口,或对支持端口的驱动程序使用 PORT=5433 之类的属性进行覆盖。
连接属性在两种模式下都会以 ODBC 的书写方式向驱动程序传递 ODBC 设置:
- 使用驱动程序时,它们会添加在连接自身设置之后。可用于驱动程序需要的其他设置,例如用
ApplicationIntent=ReadOnly连接到只读副本。 - 使用 DSN 时,它们会覆盖 DSN 自身的设置,例如
PORT=5433,或用于 IBM i 默认库的DBQ=MYLIB。
各键值对以 ; 分隔,例如 Encrypt=yes;ApplicationIntent=ReadOnly。包含 ; 的值请用花括号括起来,例如 KEY={first;second},花括号内的 } 写作 }}。关键字会以大写形式传递给驱动程序;ODBC 关键字不区分大小写。
保存时会拒绝:
- 不是
KEY=value键值对的文本,包括未闭合的花括号和没有值的关键字; - 重复出现的关键字,无论大小写;
- 连接已通过自身字段设置的关键字:
DRIVER、DSN、SERVER、DATABASE、UID、PWD、USER、USERID、USERNAME和PASSWORD; FILEDSN和SAVEFILE,它们会让代理从其机器上的文件读取连接设置,或将设置写入文件。
连接列表会隐藏这些属性,因为驱动程序可能在其中接受自己的凭据关键字;连接自身的表单会显示它们。清空该字段即可移除。请在身份验证凭据下输入用户和密码。
身份验证凭据
Section titled “身份验证凭据”| 字段 | 说明 |
|---|---|
| 用户 | 用于连接的用户。通过 DSN 时,留空则按 DSN 的设置登录;对于 SQL Server,可在属性中添加 TRUSTED_CONNECTION=Yes,以代理自身的账户登录。使用 SQL Server 驱动程序且未指定用户时,连接以代理自身的账户登录:即其 Windows 账户,或 Linux 上的 Kerberos 票据。 |
| 使用单点登录身份验证(无密码,用户可选) | 无需已存储的密码即可连接。 |
| 密码 | 用户的密码(只写)。编辑时留空可保留已保存的密码。 |
SSL 配置和 SSH 配置
Section titled “SSL 配置和 SSH 配置”这些选项卡不适用于 ODBC 连接。请在 DSN 或连接属性中设置加密及其他驱动程序选项。
早期版本保存的连接
Section titled “早期版本保存的连接”早期版本的此表单要求填写数据库并从固定列表中选择驱动程序,还会填入端口,但从未将驱动程序传递下去,因此这些连接无法连接。请打开连接,然后任选其一:
- 通过 DSN 连接: 清空 ODBC 驱动程序,输入 DSN 并保存。保存会清除旧的数据库。
- 通过 SQL Server 驱动程序连接: 检查 ODBC 驱动程序是否与代理所在机器上安装的某个 SQL Server 驱动程序匹配。旧列表中的许多名称并不是驱动程序注册时使用的名称。
保留了旧列表中驱动程序的连接会作为驱动程序连接打开。在驱动程序成为代理所在机器上已安装的 SQL Server 驱动程序之前,它无法连接;对于任何其他数据库,请通过 DSN 连接。
保存时也会清除旧的端口。只使用过 DSN、没有数据库的连接,打开时 ODBC 驱动程序为空。