sql-server - SQL访问相关查询
问题描述
当我尝试执行以下查询时:
use [msdb]
go
GRANT SELECT ON [sys].[dm_tran_current_transaction] TO
[User1];
我收到以下错误:
Msg 4629, Level 16, State 10, Line 1 只有当当前数据库是主数据库时,才能授予对服务器范围目录视图或系统存储过程或扩展存储过程的权限。
我检查了 msdb 数据库下存在的上述视图。您能帮我解决一下错误是什么以及为什么会出现此错误吗?
解决方案
您可以在每个数据库中查询动态管理视图这一事实并不一定意味着它们是在每个数据库中定义的。阅读错误信息并按照它所说的去做:使用主数据库。
此外,仅授予用户查询视图是不够的,您还必须将 VIEW DATABASE STATE 权限授予 User1(在将执行查询的数据库中)。
推荐阅读
- android - 如何使用复选框删除recyclerview项目?
- javascript - 在 SQL 中根据销售百分比创建客户集群
- python - Kivy App:TypeError:object.__init__() 只接受一个参数(要初始化的实例)
- php - 无法更改 WordPress 预览帖子链接(带有 preview_post_link)
- python - 从一列和一行创建矩阵
- matlab - MATLAB FFT 练习题
- swift - CollectionView 标头 ReusableView
- git - 当数据几乎从不改变时,Git Repo 中的 BLOB 数据会那么糟糕吗?
- php - 我无法弄清楚为什么我的 UserModel 在 CodeIgniter 4 中出现错误
- r - 将值附加为 R 中的行