![如何启用 SeSecurityPrivilege?](https://linux22.com/image/633840/%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8%20SeSecurityPrivilege%EF%BC%9F.png)
我正在尝试安装 SQL Server 2008 的修补程序,但“设置帐户权限”规则检查失败。
我在 Windows Server 2008 R2 上运行 SQL Server 2008 Standard。
在 Google 上搜索基本上会找到以下两个链接:
- http://support.microsoft.com/kb/2000257
- http://social.msdn.microsoft.com/Forums/sqlserver/en-US/2fb8b309-e205-4362-9345-75fe4a13fc92/rule-setup-account-privileges-failed-on-sql-server-2008-sp-3?forum=sqlsetupandupgrade
我的帐户包含在管理审计和安全日志策略设置(以及本文列出的其他内容)。将我的帐户添加到策略后,我运行了gpupdate /force
。我还注销并重新登录。
我正在使用本地行政人员帐户。我未在域中。我使用accesschk.exe
并安全权限未列出。我使用了 PowerShellwhoami /priv
和安全权限已列出但设置为“已禁用”。
有人知道如何“启用”此特权吗?
答案1
因此我能够通过 SQL Server 规则检查阶段。我必须将单个管理员帐户添加到以下策略设置中:
- 备份文件和目录
- 调试程序
- 管理审计和安全日志
- 恢复文件和目录
- 取得文件或其他对象的所有权
我是否是管理员组,并且管理员组包含在这些设置中。我必须明确添加单个用户帐户。我运行了gpupdate /force
。然后我注销并重新登录。然后我就可以安装修补程序了。
但即便如此,当我运行 PowerShellwhoami /priv
命令时,安全权限仍然显示“已禁用”。所以我想这其实并不重要。
答案2
当我遇到类似问题时,这个问题就出现了,把所有问题拼凑起来有点棘手,所以我会在这里补充一些内容。我不打算写一个完整的操作指南,所以我只会提供一些提示。
据我所知,这实际上与是否以“管理员身份”运行无关。至少不仅仅是。以管理员身份运行将获得更多权限可用的但不一定已启用。
举个例子,这些是我在没有“以管理员身份”的情况下获得的权限:
PS H:\> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ============================== ========
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
使用同一个账户但“作为管理员”,我获得了更多可用资源,但仍然大部分被禁用:
PS C:\Windows\system32> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
========================================= ================================================================== ========
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeSecurityPrivilege Manage auditing and security log Disabled
SeTakeOwnershipPrivilege Take ownership of files or other objects Disabled
SeLoadDriverPrivilege Load and unload device drivers Disabled
SeSystemProfilePrivilege Profile system performance Disabled
SeSystemtimePrivilege Change the system time Disabled
[...]
为了运行需要特定权限的程序,还必须启用该权限。如果帐户未首先拥有该权限,则无法启用该权限。可用的就是通过为组/用户分配权限和/或“以管理员身份”运行。然后使能够它,需要调用各种方法,显然没有本机的 Powershell 方法。
这是我发现的 Powershell 助手(尚未测试过),用于包装启用特权所需的本机调用:
https://medium.com/@markmotig/enable-all-token-privileges-a7d21b1a4a77 https://www.leeholmes.com/adjusting-token-privileges-in-powershell/ https://github.com/fashionproof/EnableAllTokenPrivs
这个微软页面也很有趣:执行特权操作有趣的是,正如该页面所述,如果您有远程连接,则权限始终处于启用状态:
默认情况下,计算机上的本地用户可以从 WMI 存储库读取静态数据、写入提供程序提供的实例以及执行提供程序方法,除非提供程序强制执行其自身的特殊安全要求。只有管理员才能连接到远程计算机、更改安全描述符或更改静态 WMI 存储库数据(例如 WMI 类定义)。远程连接的所有权限均已启用。有关详细信息,请参阅保护远程 WMI 连接。