Sql server Microsoft SQL Server身份验证方案不显示Kerberos
我在AWS中安装了一个小型测试环境,以使用GitHub上的SQL Server Cli测试Kerberos身份验证。我按照一些简单的步骤进行设置Sql server Microsoft SQL Server身份验证方案不显示Kerberos,sql-server,windows,amazon-web-services,active-directory,sql-server-2016,Sql Server,Windows,Amazon Web Services,Active Directory,Sql Server 2016,我在AWS中安装了一个小型测试环境,以使用GitHub上的SQL Server Cli测试Kerberos身份验证。我按照一些简单的步骤进行设置 已使用Windows Server 2019 Base安装Active Directory节点 使用Windows Server 2012-R2和SQL Server 2016 SP2 Enterprise安装了第二个节点 我将SQL Server节点加入到广告中,并将身份验证部分更改为使用我的广告 我运行此查询是为了测试Kerberos select
select auth_scheme from sys.dm_exec_connections where session_id=@@spid
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
您可以尝试使用下面的查询吗
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
有关更多信息,请参阅此查询。您可以尝试使用下面的查询吗
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
有关更多信息,请参阅此文件要将“Kerberos”作为身份验证方案,至少您需要以AD用户身份登录,而不是本地用户。从我在您的sys.dm_exec_sessions
输出中看到的情况来看,所有连接都是在NT Service
下建立的,后者是本地服务帐户,或者是本地用户(“本地”表示它是在SQL框中创建的,而不是在AD中)
您需要创建一个域用户,比如说MyDomain\TestUser
,并使用其凭据登录到SQL框(或者至少运行查询工具)
如果这还不够的话,您应该就其他配置步骤咨询这个。特别是,请查看用于SQL Server的Kerberos配置管理器(其下载链接位于前面提到的页面上)。
如果我的内存可用,除了SPN之外,您还需要为SQL Server服务帐户设置一些标志,但我记不起它们的确切名称——“帐户受信任以进行委派”之类的内容。为了让“Kerberos”作为身份验证方案
,至少您需要以AD用户身份登录,而不是本地用户。从我在您的sys.dm_exec_sessions
输出中看到的情况来看,所有连接都是在NT Service
下建立的,后者是本地服务帐户,或者是本地用户(“本地”表示它是在SQL框中创建的,而不是在AD中)
您需要创建一个域用户,比如说MyDomain\TestUser
,并使用其凭据登录到SQL框(或者至少运行查询工具)
如果这还不够的话,您应该就其他配置步骤咨询这个。特别是,请查看用于SQL Server的Kerberos配置管理器(其下载链接位于前面提到的页面上)。
如果我的内存可用,除了SPN之外,您还需要为SQL Server服务帐户设置一些标志,但我记不起它们的确切名称——“委托时信任帐户”之类的内容。将输出添加到问题在安装AD时将输出添加到问题中,你为域名选择了哪个名称?我使用mydomain.com当你安装广告时,你为域名选择了哪个名称?我使用mydomain.com谢谢你,罗杰。我将SQL服务更改为在域管理员帐户下运行,重新启动,然后以此方式登录,并运行与上面相同的查询。auth_scheme在两个查询中仍仅返回NTLM。登录名现在显示MYDOMAIN\peter。谢谢你,罗杰。我将SQL服务更改为在域管理员帐户下运行,重新启动,然后以此方式登录,并运行与上面相同的查询。auth_scheme在两个查询中仍仅返回NTLM。登录名现在显示MYDOMAIN\peter。