我们有一个临时服务器,在我们上线之前,我们会进行最终验收testing。 这是一个Live的副本,开发者没有比普通用户更多的特权。 我试图给开发者对这个服务器上的数据和对象的只读权限,以便他们可以调查错误。
我把它们放在一个db_datareader成员的angular色中,这个angular色给了他们数据和表格模式,但是他们不能看到视图里面是什么,存储过程和函数,所以他们不断的找我。 我不能将它们添加到db_ddladmin中,因为这会让它们改变对象,而我看不到任何其他固定的服务器或数据库angular色。
我真的必须授予他们对所讨论的每个对象的“视图定义”,还是有更清晰的方法?
您可以在模式级别授予“查看定义”权限。 最简单的方法是在暂存数据库中创build一个新angular色(比如“dev_datareader”)。 然后执行以下命令,将模式名称replace为“dbo”,如果不同:
GRANT SELECT, VIEW DEFINITION ON SCHEMA::[dbo] TO [dev_datareader]
这里是完整的SQL(用户创build)
CREATE LOGIN dev_datareader WITH PASSWORD = '340$Uuxwp7Mcxo7Khy'; GO CREATE USER dev_datareaderFOR LOGIN dev_datareader; GO GRANT SELECT, VIEW DEFINITION ON SCHEMA::[dbo] TO dev_datareader