【发布时间】:2015-08-04 22:36:25
【问题描述】:
在我们的数据仓库(将动态变化)中,每天都会删除和重建表。我们组织中的某些开发人员也有可能在该数据库中创建更多表。 因此,我无法授予持久数据库的权限。
问题: 我想做某种每天运行的工作,列出数据库中的所有表名(当时存在的),如“Select * FROM sys.tables” 然后我希望表名作为脚本的输入值,该脚本通过所有表名运行并将它们放置在如下脚本中:
GRANT SELECT TO [Tablename1] TO [ROLE_READALLTABLES Except 1 table],
GRANT SELECT TO [Tablenaam2] TO [ROLE_READALLTABLES Except 1 table]
如此循环,直到所有现有表都可读。
所以整个数据库中的所有表(除了1个表)都应该得到GRANT SELECT的权限。
我已经查看了所有相关的答案,但我似乎不知道如何让它发挥作用。 我希望有人可以帮助我。
更新 我使用 Microsoft SQL Server 2014,并通过 SQL Management Studio 2014 工作 更新 2: 有一个例外。该表具有架构 [dbo]。像所有其他表格一样
【问题讨论】:
-
我使用 MS SQL Server 2014,我使用 SQL management studio 2014
标签: sql-server sql-server-2014 database-permissions