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

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

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

我改变了计划任务,令我惊讶的是,它竟然能够正常工作。

我想了解为什么情况是这样的,系统是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(公共,系统管理员)

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

  • MySqlAuthUser(登录 MySqlAuthUser)(db_owner)
  • dbo (登录 sa) (db_owner)
  • 客人(已禁用)
  • 信息架构(已禁用)
  • 系統(已禁用)

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

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

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

答案1

备份数据库的最低权限是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 帐户将服务包和修补程序应用于 SQL Server 2005 安装。SQL Writer Service 也使用 NT AUTHORITY\SYSTEM 帐户。

2012 年的情况已不再如此。 我再次检查了我自己的 2012 Express 实例: NT AUTHORITY\SYSTEM不是系统管理员。但是,SQL Service VSS Writer NT AUTHORITY\SYSTEM以和身份运行系统管理员。

我找不到任何链接来证明这就是为什么NT AUTHORITY\SYSTEM允许备份数据库,但我相信情况确实如此。

相关内容