我有一个域用户帐户(在mydomain.com,假设)被设置为SQL Server 2005在多台机器上的许多实例的login帐户。 我想要这个域帐户(而不是机器帐户)委托委托,主要是通过链接的服务器在SQL服务器之间进行2跳validation。 链接的服务器安全性将被configuration为使用现有连接的上下文,并且所有SQL Server实例都在所述域帐户的上下文中运行。
为了说明起见,这将是SQL实例的实例名称:svra(默认sql实例)svra \ inst2(命名sql实例)svrb(默认sql实例)
我想,那么我想要在Active Directory中注册的SPN将是MSSQLSvc / svra.mydomain.com:1433 MSSQLSvc / svrb.mydomain.com:1433
我不需要在svra上命名实例的第三个,是吗?
有人可以确认这是SPN的正确格式吗? 此外,这将允许在相同的域帐户下运行IIS的SQL实例2跳validation,正确的?
一般来说,您需要同时注册FQDN SPN和Netbios名称SPN:MSSQLSvc / svra.mydomain.com:1433 AND MSSQLSvc / svra:1433
对于辅助实例(inst2),您需要该实例的TCP端口MSSQLSvc / svra:1500的SPN(例如)
此外,如果SQL Server服务进程在域帐户下运行,则还需要指定它,例如
为MSSQLSvc / svra.mydomain.com:1433
请注意,如果将SQL Server服务进程作为LOCALSYSTEM运行,则会自动创build这些SPN。
最后,您需要在域中的IIS服务器的计算机帐户上设置“可信委派”标志。
这不包括委托部分,但它包括设置authentication和正确获取SPN:
configurationKerberos身份validation
每个实例需要一个SPN,而SPN末尾的端口指定多实例机器上的实例。 在某些环境中,您可能需要为netbios和FQDN设置SPN。 SPN必须属于当前的服务帐户,而不属于任何其他帐户。 请参阅知识库文章811889如何解决“无法生成SSPI上下文”错误消息
另外,违背安全最佳实践的是将同一个帐户用于多个服务。