使用 Kerberos 連線 Azure Data Studio SQL Server
Azure Data Studio 支援使用 Kerberos 連線至 SQL Server。
若要在 macOS 或 Linux 上使用整合式驗證 (Windows 驗證),您必須設定將目前的使用者連結至 Windows 網域帳戶的 Kerberos 票證。
必要條件
若要開始,您需要:
- 存取已加入網域的 Windows 機器,以查詢您的 Kerberos 網域控制站。
- SQL Server 應設定為允許 Kerberos 驗證。 針對在 UNIX 上執行的用戶端驅動程式,只有使用 Kerberos 才支援整合式驗證。 如需詳細資訊,請參閱使用 Kerberos 整合式驗證連線到 SQL Server。 您應該 (SPN) 針對您嘗試連線的每個 SQL Server實例註冊服務主體名稱。 如需詳細資訊,請參閱 註冊 Kerberos 連接的服務主體名稱。
檢查 SQL Server 是否已設定 Kerberos
登入 SQL Server 的主機電腦。 在 Windows 命令提示字元中,使用 setspn -L %COMPUTERNAME%
列出主機的所有 SPN。 確認有以 MSSQLSvc/HostName.Domain.com 開頭的專案。 這些專案表示SQL Server已註冊 SPN,並準備好接受 Kerberos 驗證。
如果您沒有SQL Server實例主機的存取權,則從加入相同 Active Directory 的任何其他Windows OS,您可以使用 命令 setspn -L <SQLSERVER_NETBIOS>
,其中< SQLSERVER_NETBIOS >是 SQL Server 實例主機的電腦名稱稱。
取得 Kerberos 金鑰發佈中心
尋找 Kerberos 金鑰發佈中心 (KDC) 設定值。 在已加入 Active Directory 網域的 Windows 電腦上執行下列命令。
啟動 cmd.exe
並執行 nltest
。
nltest /dsgetdc:DOMAIN.COMPANY.COM (where "DOMAIN.COMPANY.COM" maps to your domain's name)
Sample Output
DC: \\dc-33.domain.company.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully
複製 DC 名稱,這是必要的 KDC 設定值。 在此案例中,此值為 dc-33.domain.company.com。
將您的作業系統加入 Active Directory 網域控制站
Ubuntu
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>**
sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
<...>
* Success
RedHat Enterprise Linux
sudo yum install realmd krb5-workstation
編輯 /etc/sysconfig/network-scripts/ifcfg-eth0
檔案 (或視需要編輯其他介面設定檔),以將您的 Active Directory 網域控制站 IP 位址列為 DNS 伺服器:
<...>
PEERDNS=no
DNS1=**<AD domain controller IP address>**
編輯此檔案之後,請重新啟動網路服務:
sudo systemctl restart network
現在,檢查 /etc/resolv.conf
檔案是否包含如下的程式碼行:
nameserver **<AD domain controller IP address>**
sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
<...>
* Success
使用 macOS 在 krb5.conf 中設定 KDC
本節討論 Kerberos 組態檔。
以您選擇的編輯器編輯 /etc/krb5.conf
檔案。 設定下列金鑰:
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = DOMAIN.COMPANY.COM
[realms]
DOMAIN.COMPANY.COM = {
kdc = dc-33.domain.company.com
}
然後,儲存 krb5.conf 檔案並結束。
注意
網域必須全部為大寫。
測試票證授與票證擷取
從 KDC 取得票證授權票證 (TGT)。
kinit username@DOMAIN.COMPANY.COM
使用 klist 檢視可用的票證。 如果 kinit 成功,您應該會看到票證。
klist
krbtgt/DOMAIN.COMPANY.COM@ DOMAIN.COMPANY.COM.
使用 Azure Data Studio 進行連線
建立新的連線設定檔。
選取 [Windows 驗證] 作為驗證類型。
完成連線設定檔,然後選取 [連線]。
成功連線之後,您的伺服器就會顯示在 [伺服器] 提要欄位中。