安全模式

本部分说明了变更数据捕获安全模式。

配置和管理

若要为数据库启用或禁用变更数据捕获,sys.sp_cdc_enable_db (Transact-SQL)sys.sp_cdc_disable_db (Transact-SQL) 调用者必须是 sysadmin 固定服务器角色的成员。若要在表级启用或禁用变更数据捕获,要求 sys.sp_cdc_enable_table (Transact-SQL)sys.sp_cdc_disable_table (Transact-SQL) 调用者必须是 sysadmin 角色成员或数据库 db_owner 角色成员。

为支持这种安全模式,在启用变更数据捕获时,将在数据库中创建一个特殊变更数据捕获用户以及变更数据捕获数据库用户拥有的变更数据捕获架构。不在资源数据库中的所有变更数据捕获对象都是在这种架构中创建的,并归变更数据捕获用户所有。这包括在为表启用变更数据捕获时创建的任何访问控制角色。

仅限服务器 sysadmin 角色成员和 database db_owner 角色成员能够使用存储过程来支持变更数据捕获作业管理。

更改枚举和元数据查询

若要获取对与捕获实例关联的更改数据的访问,必须为用户授予关联源表中的所有捕获列的选择访问权限。此外,如果在创建捕获实例时指定了访问控制角色,调用者还必须是指定访问控制角色的成员。所有数据库用户可通过 public 角色访问用于访问元数据的其他常规变更数据捕获功能,但返回的元数据访问通常也是使用基础源表的选择访问权限以及任何定义的访问控制角色成员控制的。

对启用了变更数据捕获的源表执行的 DDL 操作

为表启用变更数据捕获后,只能由固定服务器角色 sysadmin 成员、database role db_owner 成员或 database role db_ddladmin 成员将 DDL 操作应用于该表。如果为用户显式授予了对表执行 DDL 操作的权限,这些用户在尝试执行这些操作时将收到错误 22914。