Sql 使用具有系统管理员角色的登录帐户时未启用CDC

Sql 使用具有系统管理员角色的登录帐户时未启用CDC,sql,security,sysadmin,cdc,Sql,Security,Sysadmin,Cdc,在尝试在我们的一个SQL2012实例上启用CDC时,当使用作为sysadmin固定服务器角色成员的登录帐户时,我遇到一个错误 程序sp\u cdc\u enable\u db\u internal 无法更新指示数据库的元数据 已启用更改数据捕获。失败发生在 无法执行命令“setcdcctracked(Value=1)” 有关WindowsNT组/用户的信息” 最初创建数据库的登录帐户在该特定数据库的dbo用户下的“login name:”中提到 当我在数据库上运行sp_changedbowner

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

程序sp\u cdc\u enable\u db\u internal

无法更新指示数据库的元数据 已启用更改数据捕获。失败发生在 无法执行命令“setcdcctracked(Value=1)” 有关WindowsNT组/用户的信息”

最初创建数据库的登录帐户在该特定数据库的dbo用户下的“login name:”中提到

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

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

谁能帮我解释一下吗

谢谢。

以下是答案:

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