如何解决无法授予数据库级别的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 举报,一经查实,本站将立刻删除。