Подключение Azure Data Studio к SQL Server с помощью Kerberos

Azure Data Studio поддерживает подключение к SQL Server с помощью Kerberos.

Чтобы использовать встроенную проверку подлинности (проверку подлинности Windows) в macOS или Linux, нужно настроить билет Kerberos, связывающий вашего текущего пользователя с учетной записью домена Windows.

Необходимые компоненты

Для начала работы необходимы перечисленные ниже компоненты и данные.

Проверка наличия настройки Kerberos в SQL Server

Войдите на хост-компьютер SQL Server. В командной строке Windows используйте setspn -L %COMPUTERNAME%, чтобы отобразить список всех имен субъектов-служб для узла. Проверьте наличие записей, начинающихся с MSSQLSvc/HostName.contoso.com. Эти записи означают, что у SQL Server есть зарегистрированное имя субъекта-службы и он готов к проверке подлинности Kerberos.

Если у вас нет доступа к узлу экземпляра SQL Server, то из любой другой ОС Windows, присоединенной к тому же Active Directory, можно использовать команду setspn -L <SQLSERVER_NETBIOS>, где <SQLSERVER_NETBIOS> — имя узла экземпляра SQL Server.

Получение центра распространения ключей Kerberos

Найдите значение конфигурации для KDC (центр распространения ключей) Kerberos. Выполните следующую команду на компьютере Windows, присоединенном к домену Active Directory.

Запустите 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-33.domain.contoso.com.

Присоединение операционной системы к контроллеру домена Active Directory

sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit

Измените /etc/network/interfaces файл, чтобы IP-адрес контроллера домена Active Directory был указан как 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

Тестирование извлечения билета на получение билетов

Получите билет на получение билетов (TGT) из KDC.

kinit username@DOMAIN.CONTOSO.COM

Просмотр доступных билетов с помощью klist. Если это kinit было успешно, вы должны увидеть билет.

klist

Вот что мы должны были увидеть:

krbtgt/DOMAIN.CONTOSO.COM@ DOMAIN.CONTOSO.COM.

Подключение с помощью Azure Data Studio

  1. Создайте профиль подключения.

  2. Выберите Проверка подлинности Windows в качестве типа проверки подлинности.

  3. Для сервера введите полное имя узла в формате hostname.DOMAIN.CONTOSO.COM.

  4. Заполните профиль подключения и нажмите кнопку Подключить.

После успешного подключения сервер отображается на боковой панели СЕРВЕРЫ.