我有一个在SQL Server 2008中有db_datareaderangular色的用户,我需要这个用户能够看到存储过程,函数,表格脚本等。
那是什么angular色? 我不希望用户运行DDL脚本(更改表或过程)。 我只是希望用户能够读取数据库中的任何东西。
谢谢!
您正在寻找VIEW DEFINITION 。
您可以在各种范围(服务器,数据库,模式,特定对象)授予主体VIEW DEFINITION 。
存储过程示例:
Use MyDB GRANT VIEW DEFINITION ON p_MyProc TO SomeUser
对于数据库中的所有对象:
Use MyDB GRANT VIEW DEFINITION TO SomeUser
对于服务器上的所有对象:
USE master GRANT VIEW ANY DEFINITION TO SomeUSer
注意:在服务器级别授予权限时,主体还必须在数据库级别具有访问权限才能查看数据库中的定义。