迁移到自治 AI 数据库时管理角色和权限

从其他 Oracle 数据库迁移到自治 AI 数据库时,您可能会发现角色和系统权限受支持的方式存在差异。传统 Oracle 数据库中通用的某些角色和权限在自治 AI 数据库中不可用。这主要是因为:

为了确保无缝迁移体验,Autonomous AI Database 可通过以下任一方式自动管理不受支持的角色和权限:

这些转换是透明的。迁移后,您可以在 DBA_CONVERTED_STATEMENTS 视图中查看自动转换的语句。下表列出了其他 Oracle 数据库中的角色及其在自治 AI 数据库中映射的等效项:

源数据库角色 自治 AI 数据库中的映射角色
DBA PDB_DBA
DATAPUMP_EXP_FULL_DATABASE DATAPUMP_CLOUD_EXP
DATAPUMP_IMP_FULL_DATABASE DATAPUMP_CLOUD_IMP
EXP_FULL_DATABASE DATAPUMP_CLOUD_EXP
IMP_FULL_DATABASE DATAPUMP_CLOUD_IMP

有关自治 AI 数据库中不支持的角色和权限,因此在迁移或导入操作期间无法解析,请参见此页的限制部分。

以下是在迁移到自治 AI 数据库期间自动处理角色和权限的主要优势:

查询和管理转换的语句

可以查询 DBA_CONVERTED_STATEMENTS 视图来查看原始和转换的 SQL 语句,以及迁移过程中执行的操作。

通过查询 DBA_CONVERTED_STATEMENTS 视图,可以检查哪些 Grant 和 Revoke 语句被修改或忽略。此视图显示原始 SQL 语句、转换的语句(如果适用)和执行的操作,允许您审计更改并确保与自治 AI 数据库中支持的角色和权限保持一致。

以下示例说明如何查询和解释此信息。

示例 1:

SELECT
    DBMS_LOB.SUBSTR(original_sql_text, 1000, 1) AS original_sql_text,
    DBMS_LOB.SUBSTR(converted_sql_text, 1000, 1) AS converted_sql_text,
    action_taken
FROM
    DBA_CONVERTED_STATEMENTS;

示例输出显示,原始 SQL 语句已替换为仅包含自治 AI 数据库中支持的角色和权限的新语句。

ORIGINAL_SQL_TEXT
-----------------------------------------------------------------------------------------------------------------------------------------------------------
grant DBA, DATAPUMP_EXP_FULL_DATABASE, DATAPUMP_IMP_FULL_DATABASE, CDB_DBA, EM_EXPRESS_ALL, CREATE ANY LIBRARY, SYSDBA, ALTER SESSION, ALTER SYSTEM to usr1

CONVERTED_SQL_TEXT
-----------------------------------------------------------------------------------------------------------------------------------------------------------
GRANT ALTER SYSTEM, ALTER SESSION, UNLIMITED TABLESPACE, DATAPUMP_CLOUD_EXP, DATAPUMP_CLOUD_IMP, PDB_DBA TO USR1

ACTION_TAKEN
-----------------------------------------------------------------------------------------------------------------------------------------------------------
REPLACED

DATAPUMP_EXP_FULL_DATABASE 和 DATAPUMP_IMP_FULL_DATABASE 角色不适用于自治 AI 数据库。这些角色将分别自动映射到 DATAPUMP_CLOUD_EXP 和 DATAPUMP_CLOUD_IMP 角色。

示例 2:

SELECT
    DBMS_LOB.SUBSTR(original_sql_text, 1000, 1) AS original_sql_text,
    DBMS_LOB.SUBSTR(converted_sql_text, 1000, 1) AS converted_sql_text,
    action_taken
FROM
    DBA_CONVERTED_STATEMENTS;

示例输出显示已忽略原始 SQL 语句,因为自治 AI 数据库不支持任何指定的角色或权限。

ORIGINAL_SQL_TEXT
--------------------------------------------------------------------------------
grant CREATE LIBRARY, CDB_DBA, EM_EXPRESS_ALL, XDB_WEBSERVICES from usr1

CONVERTED_SQL_TEXT
--------------------------------------------------------------------------------
(null)

ACTION_TAKEN
--------------------------------------------------------------------------------
IGNORED

输出显示请求 CREATE LIBRARY、EM_EXPRESS_ALL 和 XDB_WEBSERVICES 等权限的原始 SQL 语句已被忽略。自治 AI 数据库不支持这些角色和权限。因此,对应的已转换 SQL 为空值,采取的操作标记为 IGNORED。

有关详细信息,请参阅 PURGE_CONVERTED_STMTS 视图。

在 DBA_CONVERTED_STATEMENTS 视图中查看转换的语句后,可以通过运行 purge_converted_stmts 过程删除所有语句或仅删除早于指定保留期的语句。例如:

BEGIN
  DBMS_CLOUD_ADMIN.PURGE_CONVERTED_STMTS(
    retention_date => SYSTIMESTAMP - INTERVAL '1' DAY
  );
END;
/

这将根据当前时间戳从 DBA_CONVERTED_STATEMENTS 视图中删除超过一天的条目。

有关更多信息,请参见PURGE_CONVERTED_STMTS Procedure 。

限制

从其他 Oracle 数据库迁移到自治 AI 数据库时,不支持以下角色和权限。

权限:

角色: