2

尝试在我们的一个 SQL2012 实例上启用 CDC 时,当使用属于 sysadmin 固定服务器角色成员的登录帐户时,我收到错误消息。

Procedure sp_cdc_enable_db_internal,

无法更新指示数据库已启用更改数据捕获的元数据。执行命令“SetCDCTracked(Value = 1)”时发生故障,无法获取有关 WindowsNT 组/用户的信息”

有问题的登录帐户最初创建了数据库,因此在此特定数据库的 dbo 用户下的“登录名:”中提到。

当我在数据库上运行 sp_changedbowner 'sa' 然后再次运行该命令以启用 CDC 时,它起作用了。这是为什么?

我认为要启用 CDC,您要么必须是实际数据库中“db_owner”角色的成员,要么必须是 sysadmin 角色的成员。

有人可以帮我解释一下吗?

谢谢。

4

1 回答 1

0

这是一个答案:

  1. https://docs.microsoft.com/en-us/archive/blogs/ramoji/could-not-update-the-metadata-that-indicates-database-is-enabled-for-change-data-capture-the-执行命令时发生故障-setcdctrackedvalue-1

  2. https://support.microsoft.com/en-us/help/913423/you-cannot-run-a-statement-or-a-module-that-includes-the-execute-as-cl

出现此问题的原因是当您尝试模拟数据库用户运行语句或模块时,SQL Server 2005 无法获取有关上下文的信息。

于 2020-04-21T05:39:12.070 回答