Questions tagged «kerberos»

2
如何使用Windows身份验证使链接服务器正常工作?
我正在尝试使用域环境中的“使用登录名的当前安全上下文制作”来链接到在另一台服务器ServerB上创建的ServerA的链接服务器。我读到我需要为在每个服务器上运行SQL Server的服务帐户创建SPN,以启用Kerberos。我已经做到了,并且现在都显示身份验证方案为Kerberos,但是,我仍然面临错误: "Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'". 在Active Directory中,我可以看到ServerB的服务帐户可以信任用于委派MSSQLSvc,但是我注意到ServerA的服务帐户尚未启用“信任此用户进行委派”。目标服务器是否还需要启用该选项?要使用当前的Windows登录名来使用链接服务器,是否还有其他必要?

2
证书链是由不可信的机构颁发的
前段时间,我在Windows 10家庭版环境(准确地说是笔记本电脑)上安装了SQL Server 2016开发人员版,一切都很好。 然后有人-盒子上的管理员-决定不告诉我,就重命名了该盒子。 之后,当尝试连接到SQL Server时,我们一直遇到以下错误消息: 这是与此非常类似的问题: 从Azure网站连接VM Role中的数据库时,“证书链由不可信的机构颁发” 我也来过这里: 目标主体名称不正确。无法生成SSPI上下文。(Microsoft SQL Server,错误:0) 我一直在使用Kerberos配置管理器,它给了我不同的错误消息 我应该说我能够通过SQL Server身份验证连接到该SQL Server实例,但是我想使用Windows身份验证进行连接。 只是要清楚-这都是本地计算机,不属于任何域。 我不太确定如何从这里开始,我想要使用Windows身份验证。 与证书有关的错误消息使我考虑在这里重新颁发证书。我不确定如何完成此任务,或者这是否是解决此问题的有效方法。 我今天不会在这台机器旁,但我会尽快赶上。如果时间允许,我将继续进行研究。

1
为什么在SQL Server 2012中使用托管服务帐户而不是虚拟帐户?
在SQL Server 2012中,服务帐户创建为虚拟账户(VAS),如所描述这里,而不是托管服务帐户(MSAS)。 根据说明,我可以看到这些重要的区别: MSA是域帐户,VA是本地帐户 MSA使用AD处理的自动密码管理,VA没有密码 在Kerberos上下文中,MSA自动注册SPN,而VA不注册 还有其他区别吗?如果不使用Kerberos,为什么DBA会更喜欢MSA? 更新:另一个用户已经注意到MS文档中有关VA的可能矛盾: 虚拟帐户是自动管理的,并且虚拟帐户可以在域环境中访问网络。 与 虚拟帐户无法通过身份验证到远程位置。所有虚拟帐户均使用计算机帐户的权限。以格式设置机器帐户 <domain_name>\<computer_name>$。 什么是“机器帐户”?如何/何时/为什么获得“预配”?“在域环境中访问网络”和“在域环境中认证到远程位置”之间有什么区别?

2
每个SQL实例的SPN条目应该是什么样的?
我在寻找相互矛盾的信息,以了解如何精确格式化SPN(服务主体名称)以获取正确的Kerberos连接,以及每个SQL实例需要多少连接。 该2017 MS文档包含以下内容: 从SQL Server 2008开始,为了支持TCP / IP,命名管道和共享内存上的Kerberos身份验证,更改了SPN格式。命名实例和默认实例支持的SPN格式如下。 命名实例: MSSQLSvc/FQDN:[port|instancename] 默认实例: MSSQLSvc/FQDN:port|MSSQLSvc/FQDN 新的SPN格式不需要端口号。这意味着不使用端口号的多端口服务器或协议可以使用Kerberos身份验证。 我以最后一段表示我只需要一个条目,即以下一项: 命名实例: MSSQLSvc/sqlbox1.mydomain.org/instance2 默认实例: MSSQLSvc/sqlbox1.mydomain.org 这似乎与该较旧的(2011)MS文档矛盾,不仅与端口号有关,而且与使用的名称有关: 若要创建SPN,可以使用SQL Server的Ne​​tBIOS名称或完全限定域名(FQDN)。但是,您必须为NetBIOS名称和FQDN创建一个SPN。 当我查看环境中已经存在的SPN时,会看到各种各样的组合,某些服务器最多包含4个条目: MSSQLSvc/sqlbox1 MSSQLSvc/sqlbox1:1433 MSSQLSvc/sqlbox1.mydomain.org MSSQLSvc/sqlbox1.mydomain.org:1433 甚至MS自己的Kerberos配置管理器似乎都希望生成最后两个版本(具有适当的混淆): 同样,对于现有的命名实例,我看到了一个奇怪的组合,其中一些几乎肯定是无效的: MSSQLSvc/sqlbox1:1522 MSSQLSvc/sqlbox1:instance2 MSSQLSvc/sqlbox1.mydomain.org:1522 MSSQLSvc/sqlbox1.mydomain.org:instance2 MSSQLSvc/sqlbox1.mydomain.org/instance2 MSSQLSvc/sqlbox1.mydomain.org:1522:instance2 因此,如果我仅在环境中使用TCP,那么对于默认实例和命名实例,DSN的实际外观如何? 我应该包括端口吗?还是在端口中包含一个,在端口中包含一个? 仅使用FQDN,还是仅需要Netbios名称的条目?还是仅当我们使用命名管道(不是)时? (对于上下文,我们运行SQL 2005到2014,其中一些是群集的,其他是独立的。连接仅通过TCP,在配置管理器中禁用了命名管道。我们将手动修复/创建这些管道,而不是允许SQL服务帐户在创建时服务器启动。)

2
Kerberos身份验证不适用于SQL Server 2012中的链接服务器
我正在使用2个在Windows Server 2012上运行SQL Server 2012的SQL Server来设置DEV / TEST环境。我们从Windows Server 2008上的SQL Server 2005迁移,在此我们已经正确启动了该服务器。 在SQL Server 2012中,Kerberos身份验证不起作用。 每个服务器都有自己的Active Directory帐户,该帐户具有通过Active Directory用户和计算机授予的“写入服务主体名称”和“读取服务主体名称”权限。每当我连接到SQL Server 2005服务器并运行时: SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID; 我知道了: net_transport auth_scheme TCP KERBEROS 当我对新的SQL Server 2012实例执行相同的查询时,我看到: net_transport auth_scheme TCP NTLM 如果我使用SetSPN -Q MSSQLSvc/*Active Directory查询服务主体名称,则会看到列出的2005和2012服务器,与服务器名称完全相同。 例如: MSSQLSvc/SERVERa2005.domain.inet MSSQLSvc/SERVERa2005domain.inet:1433 MSSQLSvc/SERVERb2005.domain.inet MSSQLSvc/SERVERb2005domain.inet:1433 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.