为什么NT AUTHORITY \ SYSTEM可以创建SQL Server数据库备份?


9

我有一个计划的任务(在Windows Task Scheduler中),该任务使用SMO(Windows身份验证)连接到SQL Server并创建数据库备份。到目前为止,该任务在Administrator帐户下运行,我想将其更改为使用SYSTEM帐户。

我更改了计划的任务,令我大吃一惊的是,它开箱即用。

我想了解为什么会这样。系统是Windows Server 2012 R2,数据库是SQL Server 2012(SP1)Express Edition。这是标准安装,添加了一个SQL Auth用户。

在SSMS中,这些是登录名及其相关的服务器角色:

  • MS_PolicyEventProcessingLogin ## (已禁用)

  • MS_PolicyTsqlExecutionLogin ## (已禁用)

  • MyServer \ Administrator(公用,系统管理员)
  • MySqlAuthUser(公共)
  • BUILTIN \ Users(公共)
  • NT AUTHORITY \ SYSTEM(公共)
  • NT SERVICE \ MSSQLSERVER(公用,系统管理员)
  • NT SERVICE \ SQLWriter(公用,系统管理员)
  • NT SERVICE \ Winmgmt(公共,系统管理员)
  • sa(public,sysadmin)

数据库本身具有以下用户及其角色:

  • MySqlAuthUser(登录MySqlAuthUser)(db_owner)
  • dbo(登录sa)(db_owner)
  • 客人(已禁用)
  • INFORMATION_SCHEMA (已禁用)
  • sys (禁用)

查看用户NT AUTHORITY \ SYSTEM的“有效权限”将产生以下输出:

  • 更改任何可用性组
  • 连接SQL
  • 创建可用性组
  • 查看任何数据库
  • 查看服务器状态

为什么NT AUTHORITY \ SYSTEM有权备份数据库?我很高兴这样做,但是我真的很想了解为什么 ...

Answers:


11

备份数据库的最低权限PUBLIC在服务器级别和DB_BACKUPOPERATOR数据库级别。

在SQL Server 2005中,Microsoft 建议不要NT AUTHORITY\SYSTEM从sysadmin角色删除:

NT AUTHORITY \ SYSTEM帐户也被授予SQL Server登录名。NT AUTHORITY \ SYSTEM帐户是在SYSADMIN固定服务器角色中设置的。不要删除此帐户或将其从SYSADMIN固定服务器角色中删除。Microsoft Update和Microsoft SMS使用NT AUTHORITY \ SYSTEM帐户将Service Pack和修补程序应用于SQL Server 2005安装。SQL Writer服务也使用NT AUTHORITY \ SYSTEM帐户。

2012年不再是这种情况。 我仔细检查了自己的2012 Express实例: NT AUTHORITY\SYSTEM不是sysadmin。但是,SQL Service VSS Writer 运行的NT AUTHORITY\SYSTEM,并一个系统管理员。

我找不到备份的任何链接,这就是为什么NT AUTHORITY\SYSTEM允许备份数据库的原因,但是我认为是这种情况。

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.