搭配自治式 AI 資料庫使用身分識別與存取管理 (IAM) 認證
您可以設定讓自治式 AI 資料庫使用 Oracle Cloud Infrastructure Identity and Access Management (IAM) 認證和授權,讓 IAM 使用者能夠存取具備 IAM 證明資料的自治式 AI 資料庫。
注意:識別網域的商業租用戶以及不包含識別網域的舊版 Oracle Cloud Infrastructure IAM,都支援與 Oracle Cloud Infrastructure (OCI) IAM 的自治式 AI 資料庫整合。具備識別網域的 Oracle Cloud Infrastructure IAM 導入新的 OCI 租用戶,時間為 2021 年 11 月 8 日之後所建立。自治式 AI 資料庫支援預設和非預設識別網域中的使用者和群組。
關於使用自治式 AI 資料庫進行身分識別與存取管理 (IAM) 認證
Oracle Cloud Infrastructure IAM 與自治式 AI 資料庫的整合支援資料庫密碼認證和權杖型驗證。請參閱驗證和授權 Oracle Autonomous AI 資料庫的 IAM 使用者,瞭解在自治式 AI 資料庫上使用 IAM 使用者的架構完整詳細資訊。
IAM 資料庫密碼認證
注意:所有支援的 12c 和更新版本的資料庫從屬端都可用於對自治式 AI 資料庫的 IAM 資料庫密碼存取。
Oracle Cloud Infrastructure IAM 資料庫密碼可讓 IAM 使用者登入自治式 AI 資料庫執行處理,因為 Oracle Database 使用者通常會以使用者名稱和密碼登入。使用者輸入其 IAM 使用者名稱和 IAM 資料庫密碼。IAM 資料庫密碼與 Oracle Cloud Infrastructure 主控台密碼不同。使用密碼驗證器的 IAM 使用者,您可以使用任何支援的資料庫從屬端登入自治式 AI 資料庫。
身分識別與存取管理 (IAM) SSO 權杖型驗證
資料庫從屬端有幾種方式可以取得 IAM 資料庫記號:
-
用戶端應用程式或工具可以向使用者從 IAM 要求資料庫權杖,而且可以透過用戶端 API 傳送資料庫權杖。使用 API 傳送權杖會覆寫資料庫從屬端中的其他設定值。下列從屬端支援此類型的 IAM 資料庫權杖用法:
-
所有平台上的 JDBC 精簡型
-
Linux 上的 Oracle Instant Client OCI-C
-
Oracle Data Provider for .NET (ODP.NET) 核心
-
-
如果應用程式或工具不支援透過從屬端 API 要求 IAM 資料庫權杖,則 IAM 使用者可以先使用 Oracle Cloud Infrastructure 命令行介面 (CLI) 擷取 IAM 資料庫權杖,然後將它儲存在檔案位置。例如,若要使用此連線方法來使用 SQL*Plus 和其他應用程式和工具,您必須先使用 Oracle Cloud Infrastructure (OCI) 命令行介面 (CLI) 取得資料庫記號。如果為 IAM 資料庫記號設定資料庫從屬端,當使用者使用斜線登入表單登入時,資料庫驅動程式會使用預設或指定檔案位置中儲存的 IAM 資料庫記號。
-
用戶端應用程式或工具可以使用 Oracle Cloud Infrastructure IAM 執行處理委派人或資源委派人取得 IAM 資料庫記號,並使用 IAM 資料庫記號向自治式 AI 資料庫執行處理進行自我認證。
-
IAM 使用者和 OCI 應用程式可以使用數種方法向 IAM 要求資料庫權杖,包括使用 API 金鑰。如需範例,請參閱設定使用 IAM 記號之 SQL*Plus 的從屬端連線。請參閱關於認證和授權 Oracle Autonomous AI Database 的 IAM 使用者,瞭解其他方法的描述,例如在 OCI 雲端 Shell 內使用委派權杖。
如果使用者輸入使用者名稱 / 密碼進行登入,則無論從屬端的資料庫權杖設定為何,資料庫驅動程式都會使用密碼驗證程式方法來存取資料庫。
自治式 AI 資料庫的身分識別與存取管理 (IAM) 認證先決條件
在自治式 AI 資料庫上使用身分識別與存取管理 (IAM) 認證之前,您必須確定下列事項:
您可以使用網路服務,將服務閘道、路由規則和輸出安全規則新增至您自治式 AI 資料庫資源所在的 VCN (虛擬雲端網路) 和子網路。
-
依照 Oracle Cloud Infrastructure 文件中的工作 1:建立服務閘道指示,在您自治式 AI 資料庫資源所在的 VCN (虛擬雲端網路) 中建立服務閘道。
-
建立服務閘道之後,請為自治式 AI 資料庫資源所在的每個子網路 (VCN 中) 新增路由規則和輸出安全規則,讓這些資源能夠使用閘道來使用身分識別與存取管理 (IAM) 認證:
-
移至子網路的子網路詳細資訊頁面。
-
在子網路資訊頁籤中,按一下子網路的路由表名稱,以顯示其路由表詳細資訊頁面。
-
在現有路由規則的表格中,檢查是否已有具有下列特性的規則:
-
目的地:Oracle Services Network 中的所有 IAD 服務
-
目標類型:服務閘道
-
目標:您剛在 VCN 中建立的服務閘道名稱
如果沒有這樣的規則,請按一下新增路由規則,然後新增具有這些特性的路由規則。
-
-
返回子網路的子網路詳細資訊頁面。
-
在子網路的安全清單表格中,按一下子網路安全清單的名稱,以顯示其安全清單詳細資訊頁面。
-
在側邊功能表的資源底下,按一下傳出規則。
-
在現有傳出規則的表格中,檢查是否已有具有下列特性的規則:
-
無狀態:否
-
目的地:Oracle Services Network 中的所有 IAD 服務
-
IP 協定: TCP
-
來源埠範圍: 全部
-
目的地連接埠範圍: 443
-
-
如果沒有這類規則,請按一下新增傳出規則,然後新增含有這些特性的傳出規則。
-
您環境中的 HTTP 代理主機設定值必須允許資料庫存取雲端服務提供者。
這些設定值是由機組管理員在建立 Exadata Cloud@Customer 基礎架構時所定義,如使用主控台在 Cloud@Customer 上佈建 Exadata 資料庫服務中所述。
注意:只有在 Exadata 基礎架構處於需要啟用狀態時,才能編輯包含 HTTP 代理主機的網路組態。啟用之後,就無法編輯這些設定值。
若為已經佈建的 Exadata 基礎架構設定 HTTP 代理主機,在 My Oracle Support 中需要服務要求 (SR)。請參閱 在 My Oracle Support 中建立服務要求,瞭解詳細資訊。
變更自治式 AI 資料庫上的外部身分識別提供者
描述將外部身分識別提供者從 (IAM) 認證和授權變更為其他外部認證提供者的步驟,反之亦然。
預設會對新佈建的自治式 AI 資料庫和自治式容器資料庫啟用使用者的 Oracle Cloud Infrastructure (IAM) 認證和授權。您可以為自治式 AI 資料庫啟用其他外部認證配置,例如具備 Active Directory (CMU-AD)、Azure AD 和 Kerberos 的集中管理使用者。不過,在任何指定時間只能啟用一個外部認證配置。
若要讓資料庫使用者能夠使用其他外部認證配置連線至自治式 AI 資料庫,請執行下列動作:
-
使用 DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 程序停用 IAM 整合:
舉例而言:
BEGIN DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION; END; /如需其他資訊,請參閱 DISABLE_EXTERNAL_AUTHENTICATION 程序。
-
請依照下列頁面所述的步驟,設定您選擇的其他外部認證配置:
-
使用 Oracle Cloud Infrastructure (IAM) 認證與授權,重新啟用 IAM 使用者以連線至自治式 AI 資料庫。
以 ADMIN 使用者身分,使用下列參數執行 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 程序:
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION( type => 'OCI_IAM' force => TRUE ); END; /上述範例會停用目前啟用並啟用 Oracle Cloud Infrastructure (IAM) 認證與授權的任何外部認證提供者。
在本範例中:
-
force設定為TRUE,以停用目前啟用的外部驗證。 -
type設為'OCI_IAM'以啟用及使用 Oracle Cloud Infrastructure (IAM) 認證與授權。
注意:依照預設,
force參數為FALSE。啟用另一個外部驗證方法且force為FALSE時,DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 會報告下列錯誤:ORA-20004: Another external authentication is already enabled.請參閱 ENABLE_EXTERNAL_AUTHENTICATION Procedure 以取得進一步的參照。
-
-
檢查
IDENTITY_PROVIDER_TYPE系統參數的值,如下所示:SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';NAME VALUE ---------------------- ------- identity_provider_type OCI_IAM
為 IAM 使用者建立身分識別與存取管理 (IAM) 群組和原則
描述撰寫 IAM 群組原則敘述句的步驟,讓 IAM 使用者能夠存取 Oracle Cloud Infrastructure 資源 (特別是自治式 AI 資料庫執行處理)。
原則是一組敘述句,指定誰可以存取特定資源以及如何存取。您可以授予整個租用戶、區間中的資料庫或個別資料庫的存取權。這表示您可以撰寫原則敘述句,讓特定群組可以特定類型存取特定區間內的特定資源。
注意: 必須定義原則,才能使用 IAM 權杖存取自治式 AI 資料庫。使用 IAM 資料庫密碼存取自治式 AI 資料庫時,不需要有原則。
若要啟用自治式 AI 資料庫,讓 IAM 使用者能夠使用 IAM 權杖連線至資料庫:
-
建立群組並將使用者新增至群組,以執行 Oracle Cloud Infrastructure Identity and Access Management 先決條件。
例如,建立
sales_dbusers群組。如需詳細資訊,請參閱管理群組。
-
撰寫原則敘述句以啟用對 Oracle Cloud Infrastructure 資源的存取。
-
在 Oracle Cloud Infrastructure 主控台中,按一下身分識別與安全性。
-
在身分識別與安全性底下,按一下原則。
-
若要寫入原則,請按一下建立原則。
-
在「建立政策」頁面上,輸入名稱和說明。
-
在「建立原則」頁面上,選取顯示手動編輯器。

[Description of the illustration adb_iam_create_policy_manual.png](img_text/adb_iam_create_policy_manual.html) -
使用 Policy Builder 建立原則。
例如,若要建立允許 IAM 群組
DBUsers中使用者存取其租用戶中任何自治式 AI 資料庫的原則:Allow group DBUsers to use autonomous-database-family in tenancy例如,建立限制
DBUsers群組成員只能存取testing_compartment區間中自治式 AI 資料庫的原則:allow group DBUsers to use autonomous-database-family in compartment testing_compartment例如,若要建立原則,限制對區間中單一資料庫的群組存取:
allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'如需有關存取資料庫之 IAM 原則的詳細資訊,請參閱 Database Security Guide 中的 Creating an IAM Policy to Authorize Users Authenticating with Tokens 。
-
按一下建立。
請參閱管理原則,瞭解原則的詳細資訊。
-
在自治式 AI 資料庫上建立與 IAM 使用者搭配使用的原則注意事項:
-
原則可讓 IAM 使用者存取整個租用戶、區間中的自治式 AI 資料庫執行處理,或限制對單一自治式 AI 資料庫執行處理的存取。
-
您可以使用執行處理主體或資源主體來擷取資料庫記號,以建立從應用程式到「自治式 AI 資料庫」執行處理的連線。如果您使用實例主體或資源主體,則必須對映動態群組。因此,您無法只對應執行處理和資源主體;您只能透過共用對應來對應執行處理和資源主體,然後將該執行處理或資源執行處理放在 IAM 動態群組中。
您可以在建立以存取 Oracle Cloud Infrastructure 的原則中建立動態群組及參照動態群組。請參閱計畫存取控制與建立支援的資源和管理動態群組以瞭解詳細資訊。
在自治式 AI 資料庫新增 IAM 使用者
若要新增允許存取自治式 AI 資料庫的 IAM 使用者,請將資料庫全域使用者對應至含有 CREATE USER 或 ALTER USER 敘述句 (使用 IDENTIFIED GLOBALLY AS 子句) 的 IAM 群組或使用者。
IAM 使用者與自治式 AI 資料庫執行處理的授權可藉由將 IAM 全域使用者 (綱要) 對應至 IAM 使用者 (獨佔對應) 或 IAM 群組 (共用綱要對應) 來運作。
若要授權自治式 AI 資料庫執行處理上的 IAM 使用者:
-
以 ADMIN 使用者身分登入已啟用使用 IAM 的資料庫 (ADMIN 使用者擁有這些步驟所需的必要
CREATE USER和ALTER USER系統權限)。 -
在自治式 AI 資料庫使用者 (綱要) 與
CREATE USER或ALTER USER敘述句之間建立對應,並包含指定 IAM 群組名稱的IDENTIFIED GLOBALLY AS子句。使用下列語法將全域使用者對應至 IAM 群組:
CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';例如,若要將名為
db_sales_group的 IAM 群組對應至名為sales_group的共用資料庫全域使用者:CREATE USER sales_group IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=db_sales_group';這會建立共用的全域使用者對應。對映 (全域使用者
sales_group) 對 IAM 群組中的所有使用者有效。因此,db_sales_group中的任何人都可以使用其 IAM 證明資料登入資料庫 (透過sales_group全域使用者的共用對應)。下列範例顯示如何針對非預設網域完成此作業:
CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=sales_domain/db_sales_group'; -
若要建立其他 IAM 群組或使用者的其他全域使用者對應,請針對每個 IAM 群組或使用者遵循這些步驟。
注意:即使已啟用自治式 AI 資料庫進行 IAM 認證,非 IDENTIFIED GLOBALLY 的資料庫使用者仍可繼續登入。
將本機 IAM 使用者僅對應至 Oracle Database 全域使用者:
-
以 ADMIN 使用者身分登入已啟用使用 IAM 的資料庫 (ADMIN 使用者擁有這些步驟所需的必要
CREATE USER和ALTER USER系統權限)。 -
在「自治式 AI 資料庫」使用者 (綱要) 與
CREATE USER或ALTER USER敘述句之間建立對應,並包含IDENTIFIED GLOBALLY AS子句 (指定 IAM 本機 IAM 使用者名稱)。例如,若要建立名為
peter_fitch的新資料庫全域使用者,並將此使用者對應至名為peterfitch的現有本機 IAM 使用者:CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'下列範例顯示如何透過指定非預設網域
sales_domain來建立使用者:CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';
在自治式 AI 資料庫新增 IAM 角色
選擇性地建立全域角色,以便在多個 IAM 使用者對應至相同的共用全域使用者時,提供額外的資料庫角色和權限給 IAM 使用者。
對自治式 AI 資料庫的使用者 (綱要) 或共用使用者對應使用獨有的 IAM 對應時,可以選擇是否使用全域角色。例如,可以將所有權限和角色授予共用綱要,而對應至共用綱要的所有 IAM 使用者,都會被授予指派給共用綱要的權限和角色。
您可以使用全域角色,選擇性地區分使用相同共用綱要的使用者。例如,一組使用者可以擁有相同的共用綱要,而共用綱要則可以有 CREATE SESSION 權限。然後全域角色可以用來提供差異化的權限,以及指派給所有使用相同共用綱要之不同使用者群組的角色。
透過將自治式 AI 資料庫全域角色對應至 IAM 群組,將其他角色授予自治式 AI 資料庫中的 IAM 使用者。
若要將自治式 AI 資料庫全域角色對應至 IAM 群組,請執行下列動作:
-
以 ADMIN 使用者身分登入已啟用使用 IAM 的資料庫 (ADMIN 使用者擁有這些步驟所需的必要
CREATE USER和ALTER USER系統權限)。 -
使用
CREATE ROLE或ALTER ROLE敘述句設定自治式 AI 資料庫角色的資料庫授權,並包含指定 IAM 群組名稱的IDENTIFIED GLOBALLY AS子句。使用下列語法將全域角色對應至 IAM 群組:
CREATE ROLE global_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';例如,若要將名為
ExporterGroup的 IAM 群組對應至名為export_role的共用資料庫全域角色:CREATE ROLE export_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=ExporterGroup';下列範例顯示如何透過指定非預設網域
sales_domain來建立角色:CREATE ROLE export_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=sales_domain/ExporterGroup';sales_domain網域中ExporterGroup的所有成員在登入資料庫時,都會以資料庫全域角色export_role授權。 -
您可以使用
GRANT敘述句,將必要的權限或其他角色授與全域角色。GRANT CREATE SESSION TO export_role; GRANT DWROLE TO export_role; -
若要讓現有的資料庫角色與 IAM 群組關聯,請使用
ALTER ROLE敘述句更改現有的資料庫角色,將角色對應至 IAM 群組。請使用下列語法更改現有的資料庫角色,將其對應至 IAM 群組:ALTER ROLE existing_database_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';
若要為其他 IAM 群組新增其他全域角色對應,請針對每個 IAM 群組遵循這些步驟。
建立 IAM 使用者的 IAM 資料庫密碼
若要新增 IAM 使用者並允許 IAM 使用者透過提供使用者名稱和密碼來登入「自治式 AI 資料庫」,您必須建立 IAM 資料庫密碼。
請參閱使用 IAM 資料庫密碼以瞭解詳細資訊。
使用身分識別與存取管理 (IAM) 認證連線至自治式 AI 資料庫
資料庫 ADMIN 使用者將全域使用者和全域角色對應至 IAM 使用者和 IAM 群組之後,使用者可以使用其 Oracle Cloud Infrastructure IAM 證明資料登入自治式 AI 資料庫執行處理,或透過 Oracle Cloud Infrastructure IAM 資料庫權杖存取資料庫。
您仍然可以使用本機資料庫帳戶使用者名稱和密碼 (非全域資料庫使用者帳戶) 登入「自治式 AI 資料庫」。
您可以使用資料庫從屬端,以 Oracle Cloud Infrastructure IAM 使用者身分存取自治式 AI 資料庫執行處理。若要使用 Oracle Cloud Infrastructure IAM 使用者名稱和密碼證明資料以及密碼驗證程式的從屬端,資料庫從屬端必須是 12c 或更新的版本。
或者,您也可以使用 Oracle Cloud Infrastructure IAM 資料庫權杖,以支援的從屬端存取自治式 AI 資料庫執行處理:
-
支援 IAM 權杖認證的 JDBC-Thin 如下:
-
JDBC 版本 19.13.0.0.1 (或更新版本):請參閱 JDBC 和 UCP 下載以取得 JDBC 驅動程式。
-
JDBC 版本 21.4.0.0.1 (或更新版本):請參閱 JDBC 和 UCP 下載以取得 JDBC 驅動程式。
請參閱支援以 IAM 權杖為基礎的認證以瞭解詳細資訊:
-
-
SQL*Plus 和 Oracle Instant Client:Linux 版本 19.13 或更新版本的 SQL*Plus 和 Instant Client 支援,以及 Linux 版本 21.4 或更新版本的 Instant Client。
如需詳細資訊,請參閱 Identity and Access Management (IAM) Token-Based Authentication 。
-
您也可以將資料庫從屬端設定為使用 IAM 使用者名稱和 IAM 資料庫密碼擷取資料庫權杖。
請參閱使用 IAM 使用者名稱和資料庫密碼要求之記號的從屬端連線以瞭解詳細資訊。
-
.NET 用戶端 (最新版本的 Linux 或 Windows)。您可以從下列網站免費下載 .NET 軟體元件:
注意:如果您的「自治式 AI 資料庫」執行處理處於「限制模式」,則只有具備 RESTRICTED SESSION 權限 (例如 ADMIN) 的使用者才能連線至資料庫。
關於使用 IAM 連線至專用 Exadata 基礎架構執行處理上的自治式 AI 資料庫
IAM 使用者可以使用 IAM 資料庫密碼驗證程式或 IAM 權杖,連線至專用 Exadata 基礎架構執行處理上的自治式 AI 資料庫。
使用 IAM 資料庫密碼驗證程式與 Oracle Database 密碼認證處理作業類似。不過,驗證程式會改為儲存為 Oracle Cloud Infrastructure (OCI) IAM 使用者設定檔的一部分,而不是儲存在專用 Exadata 基礎架構上的自治式 AI 資料庫中的密碼驗證程式 (密碼的加密雜湊)。
第二個連線方法 (對資料庫使用 IAM 記號) 更為現代化。使用權杖型存取權較適合雲端資源,例如專用 Exadata 基礎架構上的自治式 AI 資料庫。權杖是以 IAM 端點可強制實行的強度為基礎。這可以是多因素認證,比只使用密碼還要強。使用記號的另一個優點是,密碼驗證程式 (被視為機密) 一律不會儲存在記憶體中或儲存在記憶體中。
使用 IAM 資料庫密碼驗證程式的從屬端連線
設定 IAM 使用者所需的授權之後,此使用者就可以使用現有的從屬端應用程式 (例如 SQL*Plus 或 SQLcl) 登入,而不需要進行其他組態設定。
IAM 使用者使用任何目前支援的資料庫從屬端,輸入 IAM 使用者名稱和 IAM 資料庫密碼 (不是 Oracle Cloud Infrastructure (OCI) 主控台密碼)。唯一的限制條件是資料庫從屬端版本為 Oracle Database 版本 12.1.0.2 或更新版本,以使用 Oracle Database 12c 密碼。資料庫從屬端必須能夠使用 12C 密碼驗證程式。IAM 不支援使用 11G 驗證程式加密。IAM 使用者不需要設定特殊從屬端或工具組態,即可連線至專用 Exadata 基礎架構執行處理上的自治式 AI 資料庫。
使用記號的從屬端連線
For IAM token access to the Autonomous AI Database on Dedicated Exadata Infrastructure, the client application or tool requests a database token from IAM for the IAM user.
從屬端應用程式會透過資料庫從屬端 API 將資料庫權杖直接傳送給資料庫從屬端。
如果尚未更新應用程式或工具來要求 IAM 權杖,則 IAM 使用者可以使用 Oracle Cloud Infrastructure (OCI) 命令行介面 (CLI) 來要求及儲存資料庫權杖。您可以使用下列證明資料要求資料庫存取記號 (db-token):
-
安全記號 (使用 IAM 認證)、委派記號 (在 OCI 雲端 Shell 中) 以及
API-keys(代表啟用認證之 IAM 使用者的證明資料) -
執行處理主要項目記號,可讓執行處理成為授權動作者 (或主要項目) 在認證後對服務資源執行動作
-
資源主體權杖,此證明資料可讓應用程式向其他 Oracle Cloud Infrastructure 服務進行本身認證
當 IAM 使用者以斜線 / 登入並設定 OCI_IAM 參數 (sqlnet.ora、tnsnames.ora 或作為連線字串的一部分) 登入從屬端時,資料庫從屬端便會從檔案擷取資料庫記號。如果 IAM 使用者送出使用者名稱和密碼,連線將會使用針對使用 IAM 資料庫密碼驗證程式之從屬端連線所描述的 IAM 資料庫驗證程式存取。本指南中的指示顯示如何使用 OCI CLI 作為資料庫記號的協助程式。如果應用程式或工具已更新為使用 IAM,請遵循應用程式或工具的指示。部分常見使用案例包括:內部部署 SQL*Plus、內部部署 SQLcl、Cloud Shell 中的 SQL*Plus 或使用 SEP 公事包的應用程式。
下列主題說明如何:
-
設定讓 SQL*Plus 使用 IAM 資料庫密碼的從屬端連線。
-
設定使用 IAM 權杖之 SQL*Plus 的從屬端連線。
-
使用執行處理主體,透過 Oracle Cloud Infrastructure IAM 資料庫權杖存取資料庫。
設定使用 IAM 資料庫密碼之 SQL*Plus 的從屬端連線
您可以設定 SQL*Plus 使用 IAM 資料庫密碼。
-
以 IAM 使用者身分,使用下列語法登入 Autonomous AI Database 執行處理:
CONNECT user_name@db_connect_string Enter password: password在此規格中,
user_name是 IAM 使用者名稱。合併的domain_name/user_name有 128 個位元組的限制。下列範例顯示 IAM 使用者
peter_fitch如何登入自治式 AI 資料庫執行處理。sqlplus /nolog connect peter_fitch@db_connect_string Enter password: password某些特殊字元需要在
user_name和password前後加上雙引號。舉例而言:"peter_fitch@example.com"@db_connect_string "IAM database password"
為使用 IAM 記號的 SQL*Plus 設定從屬端連線
您可以為使用 IAM 權杖的 SQL*Plus 設定從屬端連線。
-
請確定您有 IAM 使用者帳戶。
-
請洽詢 IAM 管理員和 Oracle Database 管理員,確定您有一個原則,可讓您存取區間或租用戶中的資料庫,以及對應至資料庫中的全域綱要。
-
如果您的應用程式或工具不支援直接 IAM 整合,請下載、安裝及設定 OCI CLI。(請參閱 OCI 指令行介面快速啟動。) 在 OCI CLI 組態中設定 API 金鑰,並選取預設值。
-
設定 IAM 使用者的 API 金鑰存取權。
-
擷取
db-token。舉例而言:-
使用 Oracle Cloud Infrastructure (OCI) 命令行介面擷取具有
API-key的db-token:oci iam db-token get -
擷取具有安全性 (或階段作業) 權杖的
db-token:oci iam db-token get --auth security_token如果安全權杖已過期,將會顯示一個視窗,讓使用者能夠再次登入 OCI。這會產生使用者的安全權杖。OCI CLI 將使用此重新整理的權杖取得
db-token。 -
使用委派記號擷取
db-token:當您登入 Cloud Shell 時,委派記號會自動產生並放置在/etc目錄中。若要取得此記號,請在 Cloud Shell 中執行下列命令:oci iam db-token get -
使用 OCI 命令行介面擷取執行處理權杖:
oci iam db-token get --auth instance_principal
-
-
您也可以將資料庫從屬端設定為使用 IAM 使用者名稱和 IAM 資料庫密碼擷取資料庫權杖。
請參閱使用 IAM 使用者名稱和資料庫密碼要求之記號的從屬端連線以瞭解詳細資訊。
請參閱必要的金鑰和 OCID ,瞭解詳細資訊。
-
-
請確定您使用的是 Oracle Database 從屬端版本 19c 和 21c 的最新版本更新。
此組態僅適用於 Oracle Database 從屬端版本 19c 或 21c。
-
依照現有的程序從「自治式 AI 資料庫」下載公事包,然後依照設定公事包與 SQL*Plus 搭配使用的指示進行。
-
透過在
sqlnet.ora中尋找SSL_SERVER_DN_MATCH=ON來確認已啟用 DN 比對。 -
將
TOKEN_AUTH=OCI_TOKEN新增至sqlnet.ora檔案,將資料庫從屬端設定為使用 IAM 記號。因為您將使用資料庫記號檔案的預設位置,所以您不需要包括記號位置。
tnsnames.ora連線字串中的TOKEN_AUTH和TOKEN_LOCATION值優先於該連線的sqlnet.ora設定值。例如,針對連線字串,假設記號位於預設位置 (~/.oci/db-token代表 Linux):(description= (retry_count=20)(retry_delay=3) (address=(protocol=tcps)(port=1522) (host=example.us-phoenix-1.oraclecloud.com)) (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com)) (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, OU=Oracle BMCS US, O=Example Corporation, L=Redwood City, ST=California, C=US") (TOKEN_AUTH=OCI_TOKEN))) -
使用 TOKEN_AUTH 參數更新連線字串之後,IAM 使用者可以執行下列命令來啟動 SQL\*Plus,以登入「自治式 AI 資料庫」執行處理。您可以包括連線描述區本身,或使用 tnsnames.ora 檔案的描述區名稱。
connect /@exampledb_high
或
connect /@(description=
(retry_count=20)(retry_delay=3)
(address=(protocol=tcps)(port=1522)
(host=example.us-phoenix-1.oraclecloud.com))
(connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
(security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
OU=Oracle BMCS US, O=Example Corporation,
L=Redwood City, ST=California, C=US")
(TOKEN_AUTH=OCI_TOKEN)))
資料庫從屬端已經設定為取得 db-token,因為已經透過 sqlnet.ora 檔案或連線字串設定 TOKEN_AUTH。資料庫從屬端會取得 db-token 並使用私密金鑰進行簽署,然後將權杖傳送至「自治式 AI 資料庫」。如果指定 IAM 使用者名稱和 IAM 資料庫密碼而非斜線 /,則資料庫從屬端將會使用密碼而非使用 db-token 來連線。
使用執行處理委派人存取具備身分識別與存取管理 (IAM) 認證的自治式 AI 資料庫
在 ADMIN 使用者啟用自治式 AI 資料庫上的 Oracle Cloud Infrastructure IAM 之後,應用程式便可使用執行處理主體透過 Oracle Cloud Infrastructure IAM 資料庫權杖存取資料庫。
如需詳細資訊,請參閱使用執行處理主體存取 Oracle Cloud Infrastructure API 。
設定代理主機認證
代理主機認證可讓 IAM 使用者代理主機至資料庫綱要,以進行應用程式維護等工作。
代理主機認證通常用來認證真實使用者,然後授權他們使用具有綱要權限和角色的資料庫綱要來管理應用程式。共用應用程式綱要密碼等替代方法被視為不安全,無法稽核實際的使用者執行動作。
使用案例可在應用程式資料庫管理員的具名 IAM 使用者使用其證明資料進行認證,然後代理資料庫綱要使用者 (例如 hrapp) 進行認證的環境中。此認證可讓 IAM 管理員以使用者 hrapp 的身分使用 hrapp 權限和角色來執行應用程式維護,但仍可使用其 IAM 證明資料進行認證。應用程式資料庫管理員可以登入資料庫,然後代理應用程式綱要來管理此綱要。
您可以設定密碼認證和權杖認證方法的代理主機認證。
設定 IAM 使用者的代理主機認證
若要設定 IAM 使用者的代理主機認證,IAM 使用者必須已經有全域綱要 (專用或共用對應) 的對應。IAM 使用者要代理的個別資料庫綱要也必須可供使用。
確定您擁有此類型的使用者之後,請更改資料庫使用者,讓 IAM 使用者代理該使用者。
-
以具有
ALTER USER系統權限的使用者身分登入「自治式 AI 資料庫」執行處理。 -
授予 IAM 使用者代理本機資料庫使用者帳戶的權限。無法在命令中參照 IAM 使用者,因此必須在資料庫全域使用者之間建立代理主機 (對應至 IAM 使用者) 和目標資料庫使用者。在下列範例中,
hrapp是要代理的資料庫綱要,而peterfitch_schema是專門對應至使用者peterfitch的資料庫全域使用者。ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
在此階段,IAM 使用者可以使用代理主機登入資料庫執行處理。舉例而言:
若要使用密碼驗證程式連線,請執行下列動作:
CONNECT peterfitch[hrapp]@connect_string
Enter password: password
使用記號連線:
CONNECT [hrapp]/@connect_string
驗證 IAM 使用者代理主機認證
您可以驗證密碼和權杖認證方法的 IAM 使用者代理主機組態。1。以具有 CREATE USER 和 ALTER USER 系統權限的使用者身分登入 Autonomous AI Database 執行處理。
-
以 IAM 使用者身分連線,然後執行
SHOW USER和SELECT SYS_CONTEXT命令。例如,假設當 IAM 使用者peterfitch代理資料庫使用者hrapp時,您要檢查其代理主機認證。您將需要使用此處顯示的不同認證方法類型來連線資料庫,但是您執行的命令輸出會與所有類型相同的。- 用於密碼認證:
CONNECT peterfitch[hrapp]/password!@connect_string
SHOW USER;
--The output should be USER is "HRAPP"
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
--The output should be "PASSWORD_GLOBAL"
SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;
--The output should be "PETERFITCH_SCHEMA"
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
--The output should be "HRAPP"
-
符記驗證:
CONNECT [hrapp]/@connect_string SHOW USER; --The output should be USER is "HRAPP " SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL; --The output should be "TOKEN_GLOBAL" SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL; --The output should be "PETERFITCH_SCHEMA" SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL; --The output should be "HRAPP"
使用資料庫連結搭配 IAM 認證的使用者
您可以使用資料庫連結,以 Oracle Cloud Infrastructure IAM 使用者身分從一個自治式 AI 資料庫執行處理連線至另一個執行處理。
您可以使用連線的使用者或固定使用者資料庫連結,以 Oracle Cloud Infrastructure IAM 使用者身分連線至自治式 AI 資料庫。
注意:以 Oracle Cloud Infrastructure IAM 使用者身分連線至自治式 AI 資料庫時,不支援目前的使用者資料庫連結。
-
連線的使用者資料庫連結:如果是連線的使用者資料庫連結,IAM 使用者必須對應至資料庫連結所連線之來源和目標資料庫中的綱要。您可以使用資料庫密碼驗證程式或 IAM 資料庫記號來使用連線的使用者資料庫連結。
-
固定使用者資料庫連結:您可以使用資料庫使用者或 IAM 使用者來建立固定使用者資料庫連結。當使用 IAM 使用者作為固定使用者資料庫連結時,IAM 使用者必須在目標資料庫中擁有綱要對應。資料庫連結的 IAM 使用者只能使用密碼驗證程式設定。
停用自治式 AI 資料庫上的身分識別與存取管理 (IAM) 認證
描述停用自治式 AI 資料庫之 IAM 外部認證使用者存取的步驟。
您可以使用 ALTER SYSTEM 命令停用自治式 AI 資料庫執行處理的 IAM 使用者存取,如下所示:
ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;
如果您也想要更新對 IAM 資源 (即自治式容器資料庫或自治式 AI 資料庫) 的存取,您可能需要移除或修改 IAM 群組,以及設定為允許從這些資源存取 IAM 的原則。
使用自治式 AI 資料庫工具搭配身分識別與存取管理 (IAM) 認證的注意事項
提供使用啟用 IAM 認證之自治式 AI 資料庫工具的注意事項。
-
具備自治式 AI 資料庫的 IAM 使用者不支援 Oracle APEX。請參閱存取 Oracle Application Express Administration Services ,瞭解如何使用具有 Autonomous AI Database 的一般資料庫使用者。
-
具有自治式 AI 資料庫的 IAM 使用者不支援資料庫動作。請參閱啟用使用者存取資料庫動作,瞭解使用具有自治式 AI 資料庫的一般資料庫使用者的資訊。