Zik*_*ato 5 security change-data-capture owner sql-server-2019 schema-migration
我已使用以下命令在数据库上启用了更改数据捕获 (CDC)exec sys.sp_cdc_enable_db
这将创建一个由cdc用户拥有的新cdc架构
select
s.*
, dp.name
from sys.schemas as s
join sys.database_principals as dp
on dp.principal_id = s.principal_id
Run Code Online (Sandbox Code Playgroud)
因为我想利用所有权链接并使用 proc 从此架构中读取数据,所以我可以将所有者更改为dbo吗?
ALTER AUTHORIZATION ON SCHEMA::cdc TO dbo
Run Code Online (Sandbox Code Playgroud)
此命令起作用并更改所有者。但疾病预防控制中心已经启用了一段时间,我担心未来会进一步破坏一些东西。
从文档中:
为了使更改数据捕获 (CDC) 正常运行,您不应手动修改任何 CDC 元数据,例如 CDC 架构、更改表、CDC 系统存储过程、默认 cdc 用户权限 (sys.database_principals) 或重命名 cdc 用户。
在同一文档的其他地方(在“数据流”部分),有一个图表强烈暗示您应该使用cdc.fn_cdc_get_all_changes_<capture_instance>and/or cdc.fn_cdc_get_net_changes_<capture_instance>。在这些文档中,有一些关于权限的内容:
需要 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。对于所有其他用户,需要对源表中所有捕获的列具有 SELECT 权限,并且如果定义了捕获实例的门控角色,则需要该数据库角色的成员身份。
这意味着对基础表的 SELECT 权限应该足够了,您不需要更改有关 CDC 工作方式(权限或其他)的任何内容。
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |