微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法授予数据库级别的CHANGE TRACKING权限

如何解决无法授予数据库级别的CHANGE TRACKING权限

我们在sql Server上启用了更改跟踪。启用了更改跟踪的表跨越多个模式。我们可以成功执行以下命令,以授予模式类的VIEW CHANGE TRACKING权限,但是我们想在数据库级别授予此权限以覆盖所有模式。尝试在数据库类级别授予权限时,它将返回以下错误。我在Test数据库的上下文中运行命令。我找不到任何文档表明该特定权限无法在此级别授予。

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

解决方法

这是一个脚本,用于为包含更改跟踪表的所有模式生成授权:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。