使用 Kerberos 将 Azure Data Studio 连接到 SQL Server
Azure Data Studio 支持使用 Kerberos 连接到 SQL Server。
若要在 macOS 或 Linux 上使用集成身份验证(Windows 身份验证),需要设置 Kerberos 工单,将当前用户链接到 Windows 域帐户。
先决条件
要开始,需要:
访问已加入域的 Windows 计算机,以查询 Kerberos 域控制器。
应将 SQL Server 配置为允许 Kerberos 身份验证。 对于在 Unix 上运行的客户端驱动程序,只有使用 Kerberos 才支持集成身份验证。 有关详细信息,请参阅使用 Kerberos 集成身份验证连接到 SQL Server。 应为尝试连接到的每个 SQL Server 实例注册服务主体名称 (SPN)。 有关详细信息,请参阅 为 Kerberos 连接注册服务主体名称。
检查 SQL Server 是否设置了 Kerberos
登录到 SQL Server 的主机。 在 Windows 命令提示符下,使用 setspn -L %COMPUTERNAME%
列出主机的所有 SPN。 验证是否存在以 MSSQLSvc/HostName.contoso.com
开头的条目。 这些条目意味着 SQL Server 已注册 SPN 并可接受 Kerberos 身份验证。
如果无权访问 SQL Server 实例的主机,那么,可以在加入同一 Active Directory 的任何其他 Windows 操作系统中使用命令 setspn -L <SQLSERVER_NETBIOS>
,其中 <SQLSERVER_NETBIOS> 是 SQL Server 实例主机的计算机名称。
获取 Kerberos 密钥发行中心
找到 Kerberos 密钥发行中心 (KDC) 配置值。 在加入 Active Directory 域的 Windows 计算机上运行以下命令:
从命令行运行 nltest
,并将“DOMAIN.CONTOSO.COM”替换为域的名称。
nltest /dsgetdc:DOMAIN.CONTOSO.COM
输出类似于以下示例:
DC: \\dc-33.domain.contoso.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully
复制所需 KDC 配置值的 DC 名称。 在本例中,它是 dc-33.domain.contoso.com。
将操作系统加入 Active Directory 域控制器
sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit
编辑 /etc/network/interfaces
文件,以便将 Active Directory 域控制器的 IP 地址列为 dns-nameserver
。 例如:
<...>
# The primary network interface
auto eth0
iface eth0 inet dhcp
dns-nameservers **<AD domain controller IP address>**
dns-search **<AD domain name>**
注意
不同计算机的网络接口 (eth0) 可能不同。 若要查明正在使用哪个接口,请运行 ifconfig 并复制具有 IP 地址以及传输和接收字节的接口。
编辑此文件后,重启网络服务:
sudo ifdown eth0 && sudo ifup eth0
现在检查 /etc/resolv.conf
文件是否包含如下所示的行:
nameserver **<AD domain controller IP address>**
加入 Active Directory 域:
sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
下面是预期的输出:
<...>
* Success
测试票证授予票证检索
从 KDC 获取票证授予票证 (TGT)。
kinit username@DOMAIN.CONTOSO.COM
使用 klist
查看可用票证。 如果 kinit
成功,应会看到一个票证。
klist
下面是预期的输出:
krbtgt/DOMAIN.CONTOSO.COM@ DOMAIN.CONTOSO.COM.
使用 Azure Data Studio 连接
创建新的连接配置文件。
选择“Windows 身份验证”作为身份验证类型。
对于服务器,输入一个完全限定的主机名,格式为
hostname.DOMAIN.CONTOSO.COM
。完成连接配置文件,选择“连接”。
成功连接后,你的服务器将显示在“服务器”边栏中。