首页 > 解决方案 > SQL访问相关查询

问题描述

当我尝试执行以下查询时:

use [msdb]
go
GRANT SELECT ON [sys].[dm_tran_current_transaction] TO 
[User1];

我收到以下错误:

Msg 4629, Level 16, State 10, Line 1 只有当当前数据库是主数据库时,才能授予对服务器范围目录视图或系统存储过程或扩展存储过程的权限。

我检查了 msdb 数据库下存在的上述视图。您能帮我解决一下错误是什么以及为什么会出现此错误吗?

标签: sql-serverms-access

解决方案


您可以在每个数据库中查询动态管理视图这一事实并不一定意味着它们是在每个数据库中定义的。阅读错误信息并按照它所说的去做:使用主数据库。

此外,仅授予用户查询视图是不够的,您还必须将 VIEW DATABASE STATE 权限授予 User1(在将执行查询的数据库中)。


推荐阅读