sql-server - 为什么在删除虚拟帐户的登录后 SQL Server 继续工作

标签 sql-server sql-server-2012

在我的 SQL Server 2012 实例中,我使用域帐户来运行主要的 SQL Server 服务。当我通过 SSMS 登录实例时,我没有看到此域帐户作为登录名,但我确实看到以下虚拟帐户:

NT SERVICE\MSSQLSERVER

到目前为止一切顺利。从我读过的所有内容来看,我的域帐户不需要登录实例,因为所有内容都在虚拟帐户下运行。

在与我的同事探讨这个问题时,我删除了虚拟账户的登录信息。我以为此时一切都会停止工作,但相反,一切都很好。我重新启动了服务,甚至重新启动了整个虚拟机。一切似乎都很好。我能够创建新数据库,并在只有管理员和虚拟帐户有权访问的文件夹中创建关联的日志和数据文件。

任何人都可以阐明发生了什么事吗?因为这意味着我实际上并不了解虚拟帐户的工作原理。

<<编辑>>

我想也许我应该问的问题是,运行 SQL 服务的帐户(如 SQL Server 配置管理器中的“登录”选项卡所示)是否需要 SQL 实例中的系统管理员权限?默认情况下,它被授予系统管理员权限,但删除权限似乎没有任何区别。我可以从实例中完全删除帐户,一切似乎都很好。

最佳答案

这个问题确实与虚拟帐户无关。您只是在问:如果从实例登录中删除服务帐户,SQL Server 实例能否运行?

根据 Configure Windows Service Accounts and Permissions服务帐户在设置期间被提供为系统管理员成员登录:

  • The per-service SID of the SQL Server service is provisioned as a Database Engine login. The per-service SID login is a member of the sysadmin fixed server role.

还有 KB2620201解释如果您撤消此操作可能发生的坏事:

By removing the service SID logins or by removing them from the sysadmin server role, problems can result for various components of SQL Server that connect to SQL Server Database Engine. Some problems include the following:

  • SQL Server Agent cannot start or connect to a SQL Server service
  • SQL Server Setup programs encounter the problem that is mentioned in the following Microsoft Knowledge Base article KB955813

所以,你有它。它有效,但您可能会遇到问题。与实例本身无关,而是与作为同一帐户运行并尝试连接到实例的其他进程有关。

关于sql-server - 为什么在删除虚拟帐户的登录后 SQL Server 继续工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38624312/

相关文章:

sql - 统计用户回头率

sql - 为什么delete语句到一个表,lock一个select语句到同一个表--SQL Server

C#、sp_executesql 和不正确的语法

sql-server - 将 DataTable 传递到存储过程的最佳方法是什么?

SQL: Order By The Sequence in the "IN"语句

mysql - 使用 MySQL Workbench 为 SSMS 人员构建和测试

sql - 根据两列的范围重复行

sql-server - 自动恢复SQL Server数据库备份以进行测试

sql-server - 在 SQL Server 中处理带空格的列名

c# - 如何使用 C# 计算哈希字节 SHA1?