在 Windows 上配置 ADO.NET、ODBC 和 vsql 客户端

Vertica 客户端驱动程序支持使用 Windows SSPI 库进行 Kerberos 身份验证。Windows Kerberos 配置存储在注册表中。

对于 Windows 和 ADO.NET 上的 ODBC 和 vsql 客户端 Kerberos 身份验证,可以选择两种不同的设置方案:

在 Active Directory 中使用 Windows 内置 Kerberos 客户端和 Vertica 的 Windows KDC

在 Windows 上的 Kerberos 身份验证通常搭配 Active Directory(Microsoft 的企业目录服务/Kerberos 实施)使用。通常,由组织的网络或 IT 管理员执行设置。

Windows 客户端的 Kerberos 身份验证内置于身份验证进程中。无需任何其他软件。

在执行以下操作时,登录凭据可对您连接 Kerberos 服务器 (KDC) 进行身份验证:

  • 从客户机登录到 Windows

  • 使用配置为通过 Active Directory 使用 Kerberos 的 Windows 实例

要在 Windows 客户端上使用 Kerberos 身份验证,请以 REALM\user 身份登录。

使用 Windows 内置 Kerberos 客户端和 Vertica 的 Linux KDC

一种简单但不太常见的方案是配置 Windows 对非 Windows KDC 进行身份验证。在此实施中,使用 ksetup 实用程序在非 Active Directory KDC 中指出 Windows 操作系统本机 Kerberos 功能。通过登录到 Windows,可获取许可票证,与 Active Directory 实施类似。但在这种情况下,Windows 在内部与 Linux KDC 通信。有关详细信息,请参阅 Microsoft Windows Server Ksetup 页面

当数据库/Windows 用户登录到 Windows 计算机(或在 Windows 上执行 kinit 之后)时,Kerberos 票证必须设置 ok_as_delegate 和 forwardable 标志才能访问基于 webhdfs 的外部表,如下所示:

$ CMD \> klist
#2>     Client: release @ VERTQA.LOCAL
Server: vertica/vqatest108.verticacorp.com @ VERTQA.LOCAL
KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)
Ticket Flags 0x40a50000 forwardable renewable pre_authent ok_as_delegate name_canonicalize
Start Time: 9/27/2017 13:24:43 (local)
End Time:   9/27/2017 20:34:45 (local)
Renew Time: 10/3/2017 15:04:45 (local)
Session Key Type: RSADSI RC4-HMAC(NT)
Cache Flags: 0
Kdc Called: ADKDC01

配置 Windows 客户端以执行 Kerberos 身份验证

根据要配置的实施,请参阅 Microsoft Server 网站上的下列页面之一:

客户端身份验证和连接

KDC 可对 ADO.NET 和 a vsql 客户端进行身份验证。

验证 ADO.NET 身份验证请求和连接

本示例显示如何使用 IntegratedSecurity=true 设置指定通过 ADO.NET 驱动程序对呼叫用户的 Windows 凭据进行身份验证:

VerticaConnection conn = new
VerticaConnection("Database=VMart;Server=host.example.com;
Port=5433;IntegratedSecurity=true;
KerberosServiceName=vertica;KerberosHostname=vcluster.example.com");
conn.open();

验证 vsql 身份验证请求和连接

  1. 例如,以 EXAMPLE\kuser 身份登录到您的 Windows 客户端。

  2. 运行 vsql 客户端,并向 Vertica 提供连接字符串:

    C:\Users\kuser\Desktop>vsql.exe -h host.example.com -K vcluster -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
    

另请参阅