无法在数据库级别授予更改跟踪权限

3
我们已经在SQL Server上启用了更改跟踪。启用更改跟踪的表跨越多个模式。我们可以成功地执行以下操作,以授予模式类别上的查看更改跟踪权限,但我们希望在数据库级别授予该权限以覆盖所有模式。尝试在数据库类别级别授予权限时,会返回以下错误。我正在测试数据库的上下文中运行命令。我找不到任何说明特定权限无法在此级别授予的文档。
Incorrect syntax near 'VIEW CHANGE TRACKING'.

-- Granting on schema class works
GRANT VIEW CHANGE TRACKING ON SCHEMA::dbo TO TestUser

-- Granting on database class fails
GRANT VIEW CHANGE TRACKING ON DATABASE::Test TO TestUser

除非我记错了,你不能在数据库级别应用它。你需要对每个模式/对象单独应用它。如果你想在整个数据库上使用它,你必须使用一个动态脚本。 - undefined
1个回答

4
以下是生成所有包含带变更跟踪表格的模式授权的脚本:
```

以下是生成所有包含带变更跟踪表格的模式授权的脚本:

```
select distinct 'grant view change tracking on schema::' +quotename(schema_name(schema_id))+ ' to testuser;'
from sys.tables t
join sys.change_tracking_tables ct
  on t.object_id = ct.object_id

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接