Microsoft SQL Сервер auth_scheme не показывает Kerberos - PullRequest
1 голос
/ 09 марта 2020

Я установил небольшую тестовую среду в AWS для проверки аутентификации Kerberos с использованием SQL Server Cli, найденного на GitHub. Чтобы выполнить эту настройку, я выполнил несколько простых шагов.

  1. Установлен узел Active Directory с Windows Сервер 2019 Base.
  2. Установлен второй узел с Windows Server 2012- R2 и SQL Server 2016 с пакетом обновления 2 (SP2) Enterprise.
  3. Я подключил серверный узел SQL к AD и изменил часть авторизации для использования моей AD.
  4. Я выполнил этот запрос проверить Kerberos

    select auth_scheme from sys.dm_exec_connections where session_id=@@spid
    

Этот запрос только возвращает NTLM. Есть ли способ исправить это или я упустил что-то очевидное в моей настройке?

РЕДАКТИРОВАТЬ: добавлен запрос Рагхавендры к вопросу.

SQL\Administrator           TSQL    NTLM    SQL Microsoft SQL Server Management Studio - Query
NT SERVICE\SQLSERVERAGENT   TSQL    NTLM    SQL SQLAgent - Generic Refresher
NT SERVICE\SQLSERVERAGENT   TSQL    NTLM    SQL SQLAgent - Email Logger
SQL\Administrator           TSQL    NTLM    SQL Microsoft SQL Server Management Studio
NT SERVICE\SQLTELEMETRY     TSQL    NTLM    SQL SQLServerCEIP
SQL\Administrator           TSQL    NTLM    SQL Microsoft SQL Server Management Studio - Query

Вывод setspn -L

PS C:\Users\Administrator> setspn -L sql
Registered ServicePrincipalNames for CN=SQL,CN=Computers,DC=mydomain,DC=com:
        TERMSRV/SQL
        TERMSRV/sql.mydomain.com
        MSSQLSvc/sql.mydomain.com:1433
        MSSQLSvc/sql.mydomain.com
        WSMAN/sql
        WSMAN/sql.mydomain.com
        RestrictedKrbHost/SQL
        HOST/SQL
        RestrictedKrbHost/sql.mydomain.com
        HOST/sql.mydomain.com

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Чтобы "Kerberos" имел значение auth_scheme, по крайней мере, вам нужно войти в систему как пользователь AD, а не как локальный. Из того, что я вижу в вашем sys.dm_exec_sessions выводе, все соединения устанавливаются либо под NT Service, который является локальной учетной записью службы, либо локальным пользователем («локальный» означает, что он создан на вашем поле SQL, а не в AD ).

Вам необходимо создать пользователя домена, скажем MyDomain\TestUser, и войти в свой ящик SQL (или, по крайней мере, запустить инструмент запросов), используя его учетные данные.

В В случае, если этого недостаточно, вам следует обратиться к этой справочной статье относительно дополнительных шагов настройки. В частности, ознакомьтесь с Kerberos Configuration Manager для SQL сервера (его ссылка для скачивания доступна на вышеупомянутой странице). Если мне не изменяет память, кроме SPN, вам нужно установить некоторые флаги для учетной записи службы сервера SQL, но я не могу вспомнить их точные имена - «Учетная запись является доверенной для делегирования» или что-то в этом роде.

1 голос
/ 09 марта 2020

Можете ли вы попробовать использовать приведенный ниже запрос?

SELECT
    a.session_id,
    b.connect_time,
    a.login_time,
    a.login_name,
    b.protocol_type,
    b.auth_scheme,
    a.HOST_NAME,
    a.program_name
FROM sys.dm_exec_sessions a
JOIN sys.dm_exec_connections b
ON a.session_id = b.session_id

Для получения дополнительной информации

см. Эту ссылку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...