我有一个 Windows 内部数据库安装,使用其默认设置运行。我已配置所需的“作为服务登录”权限,如下所示:
Administrators
ALL SERVICES
LOCAL SERVICE
NETWORK SERVICE
NT SERVICE
自 SQL 安装以来第一次服务器重启后,服务无法启动。我NT SERVICE\ALL SERVICES
在服务登录权限中添加了一个条目,一切又恢复正常。我不太明白的是,为什么不NT SERVICE\ALL SERVICES
包括在NT SERVICE
或ALL SERVICES
条目中?
从技术上讲,该服务配置为登录,NT SERVICE\MSSQL$MICROSOFT##WID
因此后面有一个反斜杠NT SERVICE
,但我不认为这是这里的实际根本原因。
答案1
ALL SERVICES
本身并不是一个有效的名称,所以我预计它会被忽略:
C:\working>icacls test /grant "ALL SERVICES":(OI)(CI)(F)
ALL SERVICES: No mapping between account names and security IDs was done.
Successfully processed 0 files; Failed processing 1 files
C:\working>icacls test /grant "NT SERVICE\ALL SERVICES":(OI)(CI)(F)
processed file: test
Successfully processed 1 files; Failed processing 0 files
NT SERVICE
描述于KB243330作为“NT 服务帐户前缀”,前缀本身通常没有任何意义;它被识别为有效名称(这让我很惊讶),但我不相信它有任何成员。因此,这并不足为奇。
NT SERVICE\ALL SERVICES
是允许虚拟服务账户登录的正确方法。