unr*_*boy 8 permissions domain sql-server sql-server-2008
几个月前,我们在Windows 2008 R2 虚拟账户“ NT Service\MSSQLSERVER ”下安装了SQL Server 2012 ,一切顺利。
前几天,IT部门的一位管理员在SQL Server 2012上安装了全文搜索组件(问题是他想不起来他在安装过程中究竟选择了什么设置),然后就出现了很多问题:
A.我们查看了Windows Logs,在Application中,我们发现MSSQLServer有很多异常的日志,比如:
SQL Server 网络接口库无法为 SQL Server 服务注册服务主体名称 (SPN) [ MSSQLSvc/FooComputer.FooDomain.com:1433 ]。Windows 返回代码:0xffffffff,状态:63。未能注册 SPN 可能会导致集成身份验证使用 NTLM 而不是 Kerberos。这是一条情报信息。仅当身份验证策略需要 Kerberos 身份验证并且尚未手动注册 SPN 时,才需要采取进一步措施。
这似乎是原因,但不知道为什么以及如何解决它。
B.所有者是域用户的 SQL 作业(“MyDomain\FooUser”)将失败并显示以下消息:
作业失败。无法确定作业 JOBNAME 的所有者 (MyDomain\FooUser) 是否具有服务器访问权限(原因:无法获取有关 Windows NT 组/用户“MyDomain\FooUser”的信息,错误代码 0x6e。[SQLSTATE 42000](错误 15404))。
我们进行了密集的搜索,最终用“sa”替换了所有者并解决了问题,尽管它不是那么体面。不过,我们想找出原因。
C、不能像其他电脑的文件夹一样访问网络资源,比如下面的sql会返回“访问被拒绝”:
DECLARE @CopyCommand nvarchar(1000)
set @CopyCommand = 'dir ' + Char(34) + '\\FooComputer\FooFolder\' + Char(34)
EXEC master..xp_cmdshell @CopyCommand
Run Code Online (Sandbox Code Playgroud)
对于问题 C,根据 MSDN ( http://technet.microsoft.com/en-us/library/ms143504.aspx ),我们尝试授予对文件夹“MyDomain\SQLServerComputerName$”帐户的完全控制访问权限,仍然相同结果。
这三个问题都是由于运行SQL服务的帐户不是域帐户造成的,将SQL改为在域帐户下运行即可解决。具体来说:
A - SPN 是一种 Kerberos 安全功能,需要域帐户,并且不适用于本地帐户
B - 为了从活动目录读取,服务需要域帐户的凭据
C - 远程计算机无法识别本地帐户,因此它们拒绝连接尝试。
以下是有关如何更改服务帐户的演练:
http://technet.microsoft.com/en-us/library/ms345578.aspx
归档时间: |
|
查看次数: |
49930 次 |
最近记录: |