只读访问存储过程内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了只读访问存储过程内容相关的知识,希望对你有一定的参考价值。
是否可以设置SQL Server以便为开发人员提供对生产数据库中存储过程内容的只读访问权限?
答案
授予他们VIEW DEFINITION
特权给那些触发器,请看这里http://msdn.microsoft.com/en-us/library/ms175808.aspx
有
- 服务器范围
- 数据库范围
- 架构范围
- 个别实体
您还可以使用查询来生成脚本。所以如果你有一个用户Bob
select 'GRANT VIEW DEFINITION ON ' + quotename(specific_schema)
+ '.' + quotename(specific_name)
+ ' TO ' + 'BOB'
from INFORMATION_SCHEMA.routines
where routine_type = 'PROCEDURE'
这会给你这样的东西,你可以运行
GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO BOB
GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO BOB
GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO BOB
另一答案
在dbo的模式范围级别执行的示例。
将schema :: [dbo]上的视图定义授予BOB
另一答案
我需要授予对域帐户的访问权限..这个语法是
将schema :: [dbo]上的视图定义授予“domain BOB”
另一答案
我的所有数据库程序的变体:
select 'GRANT VIEW DEFINITION ON [' + schema_name(schema_id) + '].[' + name +
'] TO ' + '[domainusername]'
from sys.all_objects
where type_desc = 'SQL_STORED_PROCEDURE'
and schema_id <> schema_id('sys')
另一答案
虽然我知道这个问题已经很晚了,但对于那些来到这里寻找答案的人(就像我几分钟前做的那样)至少在SQL管理工作室2014中你可以编辑用户帐户并编辑在SECURABLES区域中的权限,并勾选您希望他们有权访问的VIEW中的所有框。
无需运行脚本即可完成上述操作。
以上是关于只读访问存储过程内容的主要内容,如果未能解决你的问题,请参考以下文章