Oracle Attunity 变更数据捕获服务的用户角色

本部分介绍 Attunity 用于 Oracle 的变更数据捕获服务的用户角色。 描述的角色是 SQL Server 数据库角色、Windows 角色或 Oracle 数据库角色。

Windows 用户角色

下面介绍了 Oracle CDC 服务使用的 Windows 用户角色。

计算机管理员:Oracle CDC 服务

计算机管理员是负责在计算机上创建和维护 CDC 服务的 Windows 用户。 此用户必须属于本地计算机管理员组。

Oracle CDC 服务计算机管理员执行的任务包括:

  • 安装适用于 Oracle 软件的 CDC 服务

  • 创建 Oracle CDC Windows 服务

  • 设置 CDC 服务的连接到目标 SQL Server 实例(凭据和连接字符串)

  • 确保 Oracle 日志挖掘凭据通过 CDC 服务主密码得到保护

  • 删除 CDC 服务的 Windows 服务

  • 卸载 Oracle 软件的 CDC 服务

  • 维护 Oracle 软件 CDC 服务(例如,安装更新)

  • 启动和停止 CDC 服务 Windows 服务

使用高可用性配置(如Microsoft故障转移群集)时,计算机管理员必须承担其他责任和权限,例如:

  • 在所有群集节点上为 Oracle 软件安装和维护 CDC 服务。

  • 在各种群集节点上为 CDC 服务的 Windows 服务定义通用群集服务资源。

  • 在安装了 Oracle CDC 服务的计算机上,作为被授权的计算机管理员履行职责。 此人安装适用于 Oracle 的 CDC 服务,并使用 CDC 服务配置控制台在本地计算机上为 Oracle 配置 CDC 服务。

服务帐户:Oracle CDC 服务

这是 Oracle CDC 服务 Windows 服务帐户,是用于运行 Oracle CDC 服务(服务帐户)的 Windows 帐户。

服务帐户所需的唯一权限是能够使用 Oracle 客户端和 SQL Server 本机客户端 ODBC 提供程序。 除非特定提供程序需要,否则此帐户不需要访问文件(例如,如果 Oracle 客户端连接字符串引用 tnsnames.ora 文件中的 Oracle 数据库实例,则该文件必须可供服务帐户读取)。

在 Windows Vista 或 Windows Server 2008 上创建 Oracle CDC 服务时,默认服务帐户是网络服务帐户。

在 Windows 7、Windows Server 2008 R2 及更高版本上,默认服务帐户为 NT Service\。

当 SQL Server 在另一台计算机上运行或是群集 SQL Server 实例,并且服务需要使用 Windows 身份验证连接到目标 SQL Server 时,服务帐户应为域帐户。

SQL Server 用户角色

下面介绍了 Oracle CDC 服务使用的 SQL Server 用户角色。

Oracle CDC 服务管理员

CDC 服务管理员是一个 SQL Server 用户,可完全控制目标 SQL Server 实例中的 Oracle CDC 服务项目。 CDC 服务管理员使用 Oracle CDC 设计器控制台设计 Oracle CDC 实例。

应向 CDC 服务管理员授予 SQL Server 固定服务器角色 publicdbcreator

CDC 服务管理员执行的任务包括:

  • 准备 SQL Server 实例以托管 Oracle CDC 实例(即 SQL Server 数据库)。 在此任务中,在 SQL Server 实例中创建名为 MSXDBCDC 的特殊数据库。

  • 创建 Oracle CDC 实例 SQL Server 数据库。 任务包括为 CDC 启用新创建的 SQL Server 数据库,这需要 SQL Server 系统管理员(sysadmin)。

  • 设计 Oracle CDC 实例。 此任务包括提供有关源 Oracle 数据库和捕获表的信息,这需要 Oracle 数据库管理员。

  • 一段时间内维护 Oracle CDC 实例,其中包括添加/删除捕获实例和更新配置。

  • 启用或禁用 Oracle CDC 实例。

  • 监视 Oracle CDC 实例的状态。

  • 排查影响 Oracle CDC 实例的问题。

CDC 服务管理员至少在初期是与 Oracle CDC 实例关联的 SQL Server CDC 数据库中的 db_owner 固定数据库角色成员。 这使 CDC 服务管理员能够访问 CDC 数据库中存储的更改数据。 创建后,可以将 CDC 数据库的 db_owner 角色分配给可以执行上面列出的所有任务的其他用户,但准备 SQL Server 实例和创建另一个 Oracle CDC 实例除外)。

CDC 服务管理员不需要知道通过创建 Oracle CDC Windows 服务指定的主密码。

系统管理员

SQL Server 系统管理员是 SQL Server 用户,应在与 Oracle CDC 服务关联的 SQL Server 实例上被授予固定服务器 sysadmin 角色。

只有一个 Oracle CDC 特定任务与 SQL Server 系统管理员一起执行,即为适用于 SQL Server CDC 的 Oracle CDC 实例启用 SQL Server 数据库。 创建新的 Oracle CDC 实例时,此任务是使用 Oracle CDC 设计器控制台执行的。

Oracle CDC 服务用户

SQL Server Oracle CDC 服务用户是 Oracle CDC 服务使用的 SQL Server 登录名,用于针对 MSXDBCDC 和由此服务处理的所有 Oracle CDC 实例(CDC 数据库)执行其工作。

应向 SQL Server Oracle CDC 服务用户授予以下权限:

  • 服务器处理的所有 CDC 数据库的固定数据库角色的成员 db_dlladmindb_datareaderdb_datawriter

  • MSXDBCDC 数据库的固定数据库角色的成员:db_datareaderdb_datawriter

由于 Oracle CDC 服务使用单个 SQL Server 登录名来处理所有 CDC 数据库和 MSXDBCDC 数据库,因此应在所有这些数据库中映射此登录名。

Oracle CDC 更改使用者

Oracle CDC 更改消费者是一个 SQL Server 用户,它负责读取存储在 SQL Server Oracle CDC 实例数据库中的 CDC 表的变更。

此用户确定通过 SQL Server CDC 基础结构生成的 CDC 函数访问每个 CDC 表所需的用户角色。 如果在指定捕获实例时未指定用户角色,则对更改的访问仅限于 CDC 数据库的 db_owner 固定数据库角色的成员。

Oracle 用户角色

下面介绍了 Oracle CDC 服务使用的 Oracle 用户角色。

数据库管理员(DBA)

Oracle 数据库管理员(DBA)是 Oracle 数据库用户。 Oracle DBA 执行的任务包括:

  • 将源 Oracle 数据库设置为在 ARCHIVELOG 模式下工作。

  • 设置具有所需权限的日志挖掘用户。

  • 为捕获的表设置补充日志记录。

  • 帮助恢复不再可用的存档事务日志文件,以便能够对其进行处理。

Oracle 数据库管理员可以获取需要运行的 Oracle SQL 脚本,以便在运行前对其进行评估。 Oracle 数据库管理员可以直接从 Oracle CDC 设计器控制台运行 Oracle SQL 脚本。

如果 Oracle 数据库管理员选择使用 Oracle CDC 设计器控制台,则管理员的凭据不会保留,但所使用的上下文(对话框)除外。

Oracle 数据库管理员与 Oracle CDC 服务管理员协调 SQL Server Oracle CDC 实例的配置。

日志挖掘用户

Oracle Log Miner 用户是一个特殊的 Oracle 数据库用户,它被授予访问和处理 Oracle 事务日志所需的权限。

此用户的凭据存储在使用非对称密钥加密的 SQL Server Oracle CDC 实例数据库中。 它们只能访问 Oracle CDC 服务,但不能访问 SQL Server Oracle CDC 实例数据库所有者。

以下列表描述了应授予日志挖掘用户所需的权限:

  • 在<任意捕获表>上选择SELECT

  • 选择任意交易

  • 在DBMS_LOGMNR上执行

  • 在 V$LOGMNR_CONTENTS 上执行 SELECT 语句

  • 在 V$ARCHIVED_LOG 上执行 SELECT 语句

  • 在 V$LOG 上执行 SELECT 语句

  • 在 V$LOGFILE 上选择

  • 在 V$DATABASE 上选择

  • 在 V$THREAD 上选择

  • 在 V$PARAMETER 上选择

  • SELECT on DBA_REGISTRY

  • SELECT on 所有索引

  • 在 ALL_OBJECTS 上执行 SELECT 查询

  • 在DBA_OBJECTS上执行SELECT命令

  • SELECT on ALL_TABLES

如果这些权限中的任何一个都不能授予 V$xxx,则应将其授予 V $xxx。

模式用户

Oracle 架构用户是一个 Oracle 用户,具有对要捕获的 Oracle 表架构的读取访问权限。 使用 Oracle CDC 设计器控制台检索要捕获的 Oracle 架构、要捕获的表及其列、索引和键的列表时,此用户是必需的。

此用户的凭据永远不会存储。 每次需要时,CDC 设计器控制台都会请求这些项目,并在后续的用户界面会话中保留它们。