Cur*_*orf 15 sql-server permissions role sql-server-2012
我有一个服务器,其中包含多个数据库,这些数据库包含在同一个服务器/项目中。我正在使用 MS SQL Server 2012。
我设置了一个特殊角色,其中包含 3 个属于该角色的用户。我想授予 Select 对 1 个特定数据库中所有表的角色的访问权限。
有问题的数据库是一个存档数据库,其中包含过去 12 年中每个月的存档表。最初创建角色时,我通过运行以下命令授予访问权限:
GRANT SELECT ON [dbo].[myarchivetable] TO myspecialrole
Run Code Online (Sandbox Code Playgroud)
走
这很有效,因为我只需要更改年份和月份并将其全部作为 1 个脚本运行。
我现在发现他们需要选择访问存档数据库中的每个表。我可以执行上述方法,但是必须将所有这些都写出 132 次,很容易出错。
如何轻松地将 myspecialrole 添加到该数据库中的每个表?
小智 21
如果您的所有表都在 dbo 模式中,那么这应该可以工作,如果需要,您可以拒绝单个表
GRANT SELECT ON SCHEMA :: [dbo] TO myspecialrole
Run Code Online (Sandbox Code Playgroud)
小智 5
要授予SELECT整个数据库的权限,请使用以下命令:
USE <MY_DATABASE>
GRANT SELECT ON DATABASE :: <MY_DATABASE> TO <MY_USER>
Run Code Online (Sandbox Code Playgroud)
在哪里
<MY_USER>是用户<MY_DATABASE>是数据库名称授予架构权限没有帮助,原因很简单:如果出现新架构,用户将没有权限。
授予对所有对象的权限并不出于相同的原因,用户将没有对GRANT事件后创建的新对象的权限。
| 归档时间: |
|
| 查看次数: |
40542 次 |
| 最近记录: |