迁移到自治 AI 数据库时管理角色和权限
从其他 Oracle 数据库迁移到自治 AI 数据库时,您可能会发现角色和系统权限受支持的方式存在差异。传统 Oracle 数据库中通用的某些角色和权限在自治 AI 数据库中不可用。这主要是因为:
- 完全托管自治 AI 数据库:使用这些权限和角色执行的许多数据库管理操作都会自动进行处理,授予这些操作可能会损害自治 AI 数据库的安全性。
- 使用新角色替换和增强功能:某些较旧的角色将被提供等效功能的特定于自治 AI 数据库的角色替换或扩展。
为了确保无缝迁移体验,Autonomous AI Database 可通过以下任一方式自动管理不受支持的角色和权限:
- 忽略不支持的语句:忽略引用自治 AI 数据库中不支持的角色或权限的语句。
- 映射到支持的等效项:在许多情况下,不支持的角色会替换为其对应的自治 AI 数据库等效项,例如将
DBA角色替换为PDB_DBA角色。
这些转换是透明的。迁移后,您可以在 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 数据库期间自动处理角色和权限的主要优势:
- 无缝迁移:自动调整不受支持的角色和权限可降低迁移复杂性,并有助于防止由于不受支持的 Grant 或 Revoke 操作而失败。
- 减少手动工作:无需手动检查和编辑 SQL 语句,从而实现更快、无错误的迁移。
- 运营连续性:通过隐藏错误和映射角色,Autonomous AI Database 可确保业务运营不会受到权限相关问题的干扰。
- 增强透明度:所有自动调整都可通过
DBA_CONVERTED_STATEMENTS视图进行审计,从而清晰地洞察迁移过程中所做的更改。
查询和管理转换的语句
可以查询 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。
original_sql_text是原始 SQL 语句,最多为前 1000 个字符。converted_sql_text是已转换的 SQL 语句,最多为前 1000 个字符。action_taken指示语句是IGNORED还是REPLACED。
有关详细信息,请参阅 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 数据库时,不支持以下角色和权限。
权限:
SYSDBASYSOPERGRANT ANY PRIVILEGECREATE LIBRARYCREATE ANY LIBRARYEXPORT FULL DATABASEIMPORT FULL DATABASECREATE EXTERNAL JOBSYSBACKUPSYSDGSYSKMADMINISTER KEY MANAGEMENTFLASHBACK ARCHIVE ADMINISTERINHERIT ANY REMOTE PRIVILEGESCREATE CREDENTIALCREATE ANY CREDENTIALSYSRACTEXT DATASTORE ACCESSENABLE DIAGNOSTICSCREATE TRUE CACHE
角色:
CDB_DBAEM_EXPRESS_ALLEM_EXPRESS_BASICXDB_SET_INVOKERXDB_WEBSERVICESXDB_WEBSERVICES_WITH_PUBLICXDB_WEBSERVICES_OVER_HTTPEXECUTE_CATALOG_ROLESCHEDULER_ADMINOEM_MONITORGDS_CATALOG_SELECTHS_ADMIN_EXECUTE_ROLEDBMS_MDX_INTERNALEJBCLIENTJMXSERVERGGSYS_ROLEXDBADMIN