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

如何确保 sp_cdc_help_change_data_capture 返回值?

如何解决如何确保 sp_cdc_help_change_data_capture 返回值?

我正在尝试查看有关 sql Server 2017 数据库的一些 CDC 设置信息,但由于我希望返回信息的特定查询未按预期执行,我陷入了困境。

当我运行 EXEC sys.sp_cdc_help_change_data_capture 时,没有返回任何值。但是,我知道我的表通过运行 SELECT [name],is_tracked_by_cdc FROM sys.tables order by [name] 启用了 CDC 我确实可以选择访问启用了 CDC 的表。

我尝试运行更精细的

EXEC sys.sp_cdc_help_change_data_capture @source_schema='dbo',@source_name='SUMMARY_CHANGELOG'

但出现以下错误

Msg 22981,Level 16,State 1,Procedure sys.sp_cdc_help_change_data_capture,Line 51 [Batch Start Line 0]
Object does not exist or access is denied.

如果我运行 select * from dbo.SUMMARY_CHANGELOG,我可以看到我期望的结果。

似乎我对表有适当的访问权限,对存储过程有适当的访问权限,但是返回的数据以及显示的消息告诉我有什么地方不对劲。除了验证表的存在及其是否启用了 CDC,以及我允许查询此信息的访问权限之外,我还可以查看什么来纠正此问题?

解决方法

事实证明,用户 ID 需要 CDC_Role 才能查看存储过程的结果。

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