You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2017标准版无权限却锁定内存页?查询显示LOCK_PAGES但策略为空

为什么SQL Server 2017标准版显示LOCK_PAGES但本地安全策略为空?

这问题我碰到过好几次,结合你的场景(本地账户运行、标准版),主要有这几个常见原因:

  • 权限通过组继承获得
    本地安全策略里的「锁定内存页」列表是空的,但你的SQL Server服务账户可能属于某个已经被授予该权限的本地组。比如Windows Server的Administrators组默认就拥有SeLockMemoryPrivilege权限(也就是锁定内存页的系统权限)。如果你的本地账户是管理员组成员,就会自动继承这个权限,SQL Server启动时就能启用LOCK_PAGES模式,而策略列表里不会直接显示这个用户。

  • SQL Server进程未重启,权限已被事后修改
    假设之前你给这个本地账户添加过锁定内存页权限,SQL Server启动后已经加载了这个权限。之后如果从本地安全策略里移除了该账户的权限,SQL Server进程不会主动释放已获取的权限——只有重启服务后才会生效。这时候sys.dm_os_sys_info返回的还是启动时的内存模型状态,但策略里已经看不到这个账户了。

  • 使用的是本地系统账户(Local System)
    如果你说的「本地账户」是系统内置的Local System账户,那它本身就默认拥有SeLockMemoryPrivilege权限,不需要在本地安全策略里显式添加。这种情况下策略列表自然是空的,但SQL Server依然能使用LOCK_PAGES模式。

如何验证?

你可以用以下方法确认权限情况:

  1. 切换到SQL Server服务账户的上下文(比如用runas /user:本地账户名 cmd打开命令行),执行命令:whoami /priv,查看输出里是否有SeLockMemoryPrivilege,状态是否为Enabled。
  2. 查询动态管理视图sys.dm_server_services,查看service_account对应的权限信息,或者结合sys.dm_os_process_memory里的locked_page_allocations_kb字段,确认是否真的在使用锁定内存页。

内容的提问来源于stack exchange,提问作者D.C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 21:42:45