日期:2014-05-18  浏览次数:20440 次

100 求解 sqlserver 系统视图 授权问题
对数据库系统视图的授权 
use testdb
go
grant select on sys.services to test;
grant view database state to test;
go 为什么不生效呢 


------解决方案--------------------
SQL code
grant select on sys.services to test;--这个必须在master 下才能授权。而且必须该用户先映射到 master库的安全性账户中。不过如果你的test 用户是 public 角色的话不用授权也可以查询该视图。
grant view database state to test  --同上一样。

------解决方案--------------------
探讨

SQL code
grant select on sys.services to test;--这个必须在master 下才能授权。而且必须该用户先映射到 master库的安全性账户中。不过如果你的test 用户是 public 角色的话不用授权也可以查询该视图。
grant view database state to test --同上一样。

------解决方案--------------------
SQL code
/*映射账户到指定的 DB 上*/
use testdb
go
create user test for login test

------解决方案--------------------
在 SQL Server 2005 及更高版本中,目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据

若要允许调用方查看元数据,可在适当的作用域(对象级、数据库级或服务器级)中授予调用方 VIEW DEFINITION 权限

补上这句

SQL code
grant VIEW DEFINITION to test