SQL Server中是否有DDL查看器angular色?

我有一个在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 

注意:在服务器级别授予权限时,主体还必须在数据库级别具有访问权限才能查看数据库中的定义。