创建数据库角色以允许对所有表的读取访问;写一些访问权限


9

我们有一个包含1000多个表的数据库。我需要创建一个角色,该角色只允许对所有表进行读取,并且可以对两个特定的表进行写访问。

我当时在搞数据库角色,但是每当我添加表时,我都不得不手工选择所有1000个表...还有更好的方法吗?


实际上,这可能是最简单的方法。是否可以编写脚本?每当我们刷新这些数据库之一时,我都需要保留一组脚本,我可以立即恢复所有设置。
Wes

Answers:


9

对模式(例如dbo)的授予权限将级联到该模式中的所有对象。对于个别例外情况,您可以明确列出这些例外情况:

GRANT SELECT ON SCHEMA::dbo TO [role];
GO

GRANT INSERT, UPDATE --, DELETE
  ON dbo.table_they_can_write_to TO [role];

DENY SELECT ON dbo.table_they_cannot_read TO [role];

3
很简单。很高兴我们有这样的社区。
Wes

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.