buc*_*ley 6 security sql-server permissions sql-server-agent
我创建了一个除域用户之外没有额外权限的 Windows 帐户,并使用 SQL Server 配置管理器将其设置为 SQL Server 代理服务帐户。
BoL/MSDN 表示该用户应该是 sysadmin 角色的一部分才能工作,但目前我还没有采取任何操作来实现这一点。
我预计该帐户无能为力,但看起来它是......系统管理员!如果您将以下语句放入作业步骤中,它将确认这一点:
IF IS_SRVROLEMEMBER ('sysadmin') = 1 print 'sysadmin'
Run Code Online (Sandbox Code Playgroud)
该作业步骤是一个 t-sql 步骤,所有者为 sa,因此使用 SQL Server 代理服务帐户。
现在回答这个问题。SQL Server 配置管理器似乎做了一些事情,使其成为系统管理员,或者至少在执行该步骤时如此。但同时它不会显示在 GUI 中的系统管理员列表中。
我提出的所有报告或查询(包括 SSMS)均未将此 Windows 帐户列为 sysadmin 角色的一部分。
我有一种感觉,我正在忽略某些东西。
经过一番阅读后,我想我明白了。
“NT SERVICE\SQLSERVERAGENT”是本地组“SQLServerSQLAgentUser$RINUS$MSSQLSERVER”的成员。该组拥有 sql server 代理帐户所需的所有权限
“NT SERVICE\SQLSERVERAGENT”是 sql server 固定 sysadmin 角色的一部分
无法在可用内置帐户、本地帐户或域帐户列表中选择“NT SERVICE\SQLSERVERAGENT”。这是因为它们是服务,而不是帐户。他们在 Windows 中具有安全标识符 (SID),但 Windows 知道他们不是真正的用户。Windows 可以对它们进行身份验证,但它们没有任何人都可以使用的密码。如果运行 lusrmgr.msc 并查看组,您将看到类似 SQLServerMSSQLUser$computername$MSSQLSERVER 的组,并且 NT SERVICE\MSSQLSERVER 是该组的成员。
我为代理创建的专用帐户是为 Windows 服务设置的
如果你把这些点连接起来,你就会得到一条链来解释这一点。对我来说新的部分是 NT SERVICE\SQLSERVERAGENT 可以代表专用代理帐户。
资料来源:
| 归档时间: |
|
| 查看次数: |
1212 次 |
| 最近记录: |