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

Hei*_*nzi 9 backup permissions sql-server database-backup

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

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

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

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

  • MS_PolicyEventProcessingLogin## (禁用)

  • MS_PolicyTsqlExecutionLogin## (禁用)

  • MyServer\Administrator(公共、系统管理员)
  • MySqlAuthUser(公共)
  • 内置\用户(公共)
  • NT AUTHORITY\SYSTEM(公共)
  • NT SERVICE\MSSQLSERVER(公共、系统管理员)
  • NT SERVICE\SQLWriter(公共、系统管理员)
  • NT SERVICE\Winmgmt(公共、系统管理员)
  • sa(公共,系统管理员)

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

  • MySqlAuthUser(登录MySqlAuthUser)(db_owner)
  • dbo (登录 sa) (db_owner)
  • 客人(残疾人)
  • INFORMATION_SCHEMA (禁用)
  • 系统(已禁用)

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

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

为什么 NT AUTHORITY\SYSTEM 有备份数据库的权限?我很高兴它确实如此,但我真的很想了解为什么......

Kat*_*ard 11

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

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

NT AUTHORITY\SYSTEM 帐户也被授予 SQL Server 登录名。NT AUTHORITY\SYSTEM 帐户在 SYSADMIN 固定服务器角色中提供。不要删除此帐户或将其从 SYSADMIN 固定服务器角色中删除。Microsoft 更新和 Microsoft SMS 使用 NT AUTHORITY\SYSTEM 帐户将服务包和修补程序应用到 SQL Server 2005 安装。SQL 编写器服务也使用 NT AUTHORITY\SYSTEM 帐户。

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

我找不到任何备份链接,这NT AUTHORITY\SYSTEM就是允许备份数据库的原因,但我相信情况确实如此。