如何让SQL Server只读用户查看视图的创建定义?
解决SQL Server只读账号查看视图定义的问题
可以在不赋予修改权限的前提下,让只读账号查看视图的创建逻辑,只需授予对应的视图定义查看权限即可,具体操作如下:
授予单个视图的定义查看权限
针对特定视图执行以下T-SQL语句,替换占位符为实际信息:USE [你的ERP数据库名]; GRANT VIEW DEFINITION ON [视图架构名].[目标视图名] TO [只读账号名];授予数据库内所有视图的定义查看权限
如果需要让该账号查看数据库中所有视图的定义,可执行:USE [你的ERP数据库名]; GRANT VIEW DEFINITION TO [只读账号名];(可选)授予服务器级的所有对象定义查看权限
若允许账号查看整个SQL Server实例中所有对象的定义,可执行(此权限范围较大,需谨慎操作):GRANT VIEW ANY DEFINITION TO [只读账号名];
权限授予完成后,数据分析师除了可以通过Script View as -> Create To导出视图创建脚本外,还可以直接查询系统视图获取定义:
SELECT definition FROM [你的ERP数据库名].sys.sql_modules WHERE object_id = OBJECT_ID('[视图架构名].[目标视图名]');
内容的提问来源于stack exchange,提问作者ADY
相关产品推荐
相关产品推荐

