我有一个计划任务(在Windows任务计划程序中)使用SMO(Windows身份validation)连接到SQL Server并创build数据库备份。 到目前为止,这个任务是在pipe理员帐户下运行的,我想改为使用SYSTEM帐户。
我改变了计划中的任务,而且让我非常吃惊的是,它开箱即用。
我想明白为什么会这样。 系统是Windows Server 2012 R2,数据库是SQL Server 2012(SP1)Express Edition。 这是一个标准安装,添加了一个SQL Auth用户。
在SSMS中,这些是login及其相关的服务器angular色:
数据库本身具有以下用户及其angular色:
查看用户NT AUTHORITY \ SYSTEM的“有效权限”会得到以下输出:
为什么NT AUTHORITY \ SYSTEM有权限备份数据库? 我很高兴它,但我真的想明白为什么 …
备份数据库的最低权限是服务器级别的PUBLIC和数据库级别的DB_BACKUPOPERATOR 。
在SQL Server 2005中,Microsoft build议不要从sysadminangular色中删除NT AUTHORITY\SYSTEM :
NT AUTHORITY \ SYSTEM帐户也被授予SQL Serverlogin名。 NT AUTHORITY \ SYSTEM帐户在SYSADMIN固定服务器angular色中进行设置。 不要删除此帐户,也不要将其从SYSADMIN固定服务器angular色中删除。 Microsoft AUTHORITY \ SYSTEM帐户由Microsoft Update和Microsoft SMS使用,以将Service Pack和修补程序应用于SQL Server 2005安装。 NT AUTHORITY \ SYSTEM帐户也由SQL编写器服务使用。
这在2012年已经不再是这种情况了。我重新检查了我自己的2012 Express实例: NT AUTHORITY\SYSTEM不是系统pipe理员。 但是, SQL Service VSS Writer 正在运行NT AUTHORITY\SYSTEM并且是一个系统pipe理员。
我无法find任何备份链接,这就是为什么NT AUTHORITY\SYSTEM被允许备份数据库,但我相信是这样的。