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

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

我有一个在 SQL Server 2008 中具有 db_datareader 角色的用户,我需要该用户能够查看存储过程、函数、表脚本等。

那是什么角色?我不希望用户运行 DDL 脚本(更改表或过程)。我只希望用户能够读取数据库中的任何内容。

谢谢你!

答案1

您正在寻找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

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

相关内容