Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Microsoft SQL Server身份验证方案不显示Kerberos_Sql Server_Windows_Amazon Web Services_Active Directory_Sql Server 2016 - Fatal编程技术网

Sql server Microsoft SQL Server身份验证方案不显示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

我在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 auth_scheme from sys.dm_exec_connections where session_id=@@spid
    
  • 此查询仅返回NTLM。有没有办法解决这个问题,或者我在设置中遗漏了一些明显的东西

    编辑:在问题中添加了Raghavendra查询

    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。