我在 Windows Server 2012 R2 Datacenter 计算机上使用 Microsoft SQL Server 2014。在执行特定任务时遇到问题,我试图调查运行 SQL Server Windows 服务的服务帐户是否有权访问某些文件。我进行了 SQL Server 的现成安装,并且运行该服务的服务帐户是( Integration ServicesNT SERVICE\MSSQLSERVER
也是如此)。NT SERVICE\SQLSERVERAGENT
我如何检查该帐户有权访问哪些文件?我可以逐个文件地进行检查。
我想到的一个方法是以另一个用户身份运行 cmd.exe 并开始执行dir
s。当我按住 Shift 键并单击鼠标右键C:\Windows\System32\cmd.exe
并选择以其他用户身份运行时,我尝试输入完整的帐户名(包括域),但出现此错误:提供的名称不是正确格式的帐户名。这是因为域中有空格。如果我省略域,则默认为计算机所属的域,而不是NT SERVICE
。这是假设密码为空。
如何以域名有空间的用户身份登录?
答案1
您无法使用该NT Service\MSSQLSERVER
帐户或该NT SERVICE\SQLSERVERAGENT
帐户登录。它们是仅用于服务的特殊帐户,具有 SID 以允许设置权限,但 Windows 知道它们不是真实帐户,因此不会让您使用它们登录。
您可以使用 Sysinternals 工具检查这些帐户可以访问哪些权限访问检查并扫描驱动器。
示例命令如下:
accesschk64.exe -s -d -w "NT 服务\MSSQLSERVER" C:\*.*
这将递归搜索 C 盘,显示帐户有写入权限的所有文件夹。用于accesschk64.exe /?
查看完整选项列表。