【问题标题】:SSIS CDC Permissions ErrorSSIS CDC 权限错误
【发布时间】:2016-08-11 19:07:11
【问题描述】:
我正在使用变更数据捕获创建一个 SSIS 包。我已经创建了包,但是在执行它时出现以下错误:
[CDC 控制任务] 错误:“只有 sysadmin 固定服务器的成员
role 或 db_owner 固定数据库角色可以执行此操作。
请与具有足够权限的管理员联系以执行此操作
操作。”。
错误提示需要 sysadmin/db_owner 角色。但是,这真的是必需的还是我做错了什么?
【问题讨论】:
标签:
sql-server
ssis
sql-server-2012
change-data-capture
【解决方案1】:
我取决于您在 SSIS 中尝试做什么。这是MSDN 列出的内容。以及您需要拥有什么特权..
更改数据的访问授权:
trickle-feed 更新包需要访问 SQL Server 2016 CDC 功能。默认情况下,此类访问权限授予 db_owner 固定数据库角色的成员。因为 db_owner 是一个强大的角色,所以在 SQL Server 2016 中定义捕获实例时,建议为每个捕获实例关联一个门控安全角色,以允许 SSIS CDC 包使用更受限制的用户来处理更改。
访问 CDC 数据库当前 LSN:
用于标记更改处理的起始 LSN 的 CDC 控制任务操作必须能够找到 CDC 数据库当前 LSN。这是使用 master 数据库中的过程 sp_replincrementlsn 完成的。此过程的执行权限必须授予用于连接 SQL Server 2016 CDC 数据库的登录名。
访问 CDC 状态表:
CDC 状态表用于自动持久化 CDC 状态,这些状态需要通过用于连接 SQL Server 2016 CDC 数据库的登录名进行更新。由于此表由 SSIS 开发人员创建,因此将 SQL Server 2016 系统管理员设置为有权创建 SQL Server 2016 数据库并执行管理和维护任务的用户。此外,使用启用 CDC 的数据库的 SQL Server 2016 系统管理员必须了解 SQL Server 2016 CDC 技术和实施。