在非 Windows 平台上配置 ODBC 和 vsql 客户端
要在 Linux 或 MAC OSX 上配置 ODBC 或 vsql 客户端,必须首先安装 Kerberos 5 客户端软件包。请参阅 配置 Kerberos 身份验证。
安装 Kerberos 5 客户端软件包后,必须向客户端提供有效的 Kerberos 配置文件 (krb5.conf)。要与 KDC 通信,参与 Kerberos 身份验证的每个客户端必须拥有配置相同的有效 krb5.conf 文件。Kerberos 配置文件的默认位置为 /etc/krb5.conf。
提示
要确保客户端、Vertica 分析型数据库和 KDC 之间的一致性,请将 /etc/krb5.conf 文件从 KDC 复制到客户端的 /etc 目录。Kerberos 配置 (krb5.conf
) 文件包含 Kerberos 特定的信息,包括:
-
如何连接 KDC
-
默认领域名称
-
域
-
指向日志文件的路径
-
DNS 查询
-
要使用的加密类型
-
票证使用期限
Kerberos 配置文件的默认位置为 /etc/krb5.conf
。
如果配置正确,客户端可以使用 Kerberos 进行身份验证并通过 kinit
实用程序检索票证(请参阅以下获取 ODBC 身份验证请求和连接)。同样,服务器则可以使用 ktutil 在 keytab 文件中存储其凭据
在非 Windows 平台上对 ODBC 和 vsql 客户端进行身份验证
ODBC 和 vsql 使用 kinit
建立的客户端票证执行 Kerberos 身份验证。这些客户端依赖于安全库的默认机制来查找票证文件和 Kerberos 配置文件。
要按照 Kerberos 进行身份验证,请调用 kinit
实用程序以便从 Kerberos KDC 服务器获取票证。以下两个示例显示了如何使用 ODBC 和 vsql 客户端发送票证请求。
获取 ODBC 身份验证请求和连接
-
在 ODBC 客户端上,通过调用
kuser
实用程序获取kinit
用户的票证。$ kinit kuser@EXAMPLE.COM Password for kuser@EXAMPLE.COM:
-
连接到 Vertica,并在连接字符串中提供主体:
char outStr[100]; SQLLEN len; SQLDriverConnect(handle, NULL, "Database=VMart;User=kuser; Server=myserver.example.com;Port=5433;KerberosHostname=vcluster.example.com", SQL_NTS, outStr, &len);
获取 vsql 身份验证请求和连接
如果 vsql 客户端位于您所连接的同一台计算机中,vsql 将通过 UNIX 域套接字连接。此连接将绕过 Kerberos 身份验证。当使用 Kerberos 进行身份验证时,特别是客户端身份验证方法配置为“本地”时,必须包括 -h 主机名选项。请参阅命令行选项。
-
在 vsql 客户端上,调用
kinit
实用程序:$ kinit kuser@EXAMPLE.COM Password for kuser@EXAMPLE.COM:
-
连接到 Vertica,并在连接字符串中提供主机和用户主体:
$ ./vsql -K vcluster.example.com -h myserver.example.com -U kuser Welcome to vsql, the Vertica Analytic Database interactive terminal. Type: \h or \? for help with vsql commands \g or terminate with semicolon to execute query \q to quit
将来,以 kuser
身份登录 vsql 时,vsql 将使用您缓存的票证,而不提示您输入密码。
验证身份验证方法
通过查询 SESSIONS 系统表可以验证身份验证方法:
=> SELECT authentication_method FROM sessions;
authentication_method
-----------------------
GSS-Kerberos
(1 row)
另请参阅
- ODBC DSN 连接属性
-
(vsql) 命令行选项