Identity and Access Management-(IAM-)Authentifizierung mit Autonomous Database verwenden

Sie können Autonomous Database so konfigurieren, dass Oracle Cloud Infrastructure Identity and Access Management-(IAM-)Authentifizierung und -Autorisierung verwendet wird, damit IAM-Benutzer mit IAM-Zugangsdaten auf eine autonome Datenbank zugreifen können.

Hinweis:

Die Autonomous Database-Integration mit Oracle Cloud Infrastructure (OCI) IAM wird in kommerziellen Mandanten mit Identity-Domains unterstützt sowie mit Legacy-Oracle Cloud Infrastructure IAM ohne Identity-Domains. Oracle Cloud Infrastructure-IAM mit Identitätsdomains wurde mit neuen OCI-Mandanten eingeführt, die nach dem 8. November 2021 erstellt wurden. Autonomous Database unterstützt Benutzer und Gruppen in Standard- und Nicht-Standardidentitätsdomains.

Identity and Access Management-(IAM-)Authentifizierung mit Autonomous Database

Die Oracle Cloud Infrastructure-IAM-Integration mit Autonomous Database unterstützt sowohl die Authentifizierung mit einem Datenbankkennwort als auch die tokenbasierte Authentifizierung. Ausführliche Informationen über die Architektur zur Verwendung von IAM-Benutzern in Autonomous Database finden Sie unter IAM-Benutzer für Oracle Autonomous Database authentifizieren und autorisieren.

Authentifizierung mit einem IAM-Datenbankkennwort

Hinweis:

Jeder unterstützte Datenbankclient ab 12c kann für den IAM-Datenbankkennwortzugriff auf Autonomous Database verwendet werden.

Mit einem Oracle Cloud Infrastructure-IAM-Datenbankkennwort kann sich ein IAM-Benutzer bei einer Autonomous Database-Instanz anmelden, da sich Oracle Database-Benutzer normalerweise mit einem Benutzernamen und einem Kennwort anmelden. Der Benutzer gibt seinen IAM-Benutzernamen und sein IAM-Datenbankkennwort ein. Ein IAM-Datenbankkennwort unterscheidet sich vom Kennwort für die Oracle Cloud Infrastructure-Konsole. Durch die Verbindung eines IAM-Benutzers mit der Kennwortverifizierung können Sie sich bei Autonomous Database mit einem beliebigen unterstützten Datenbankclient anmelden.

Auf Identity and Access Management-(IAM-)-Token basierte SSO-Authentifizierung

Ein Datenbankclient kann ein IAM-Datenbanktoken auf mehrere Arten abrufen:

  • Eine Clientanwendung oder ein Clienttool kann das Datenbanktoken von IAM für den Benutzer anfordern und das Datenbanktoken über die Client-API übergeben. Wenn Sie das Token mit der API senden, werden andere Einstellungen im Datenbankclient überschrieben. Diese Art der Verwendung des IAM-Datenbanktokens wird bei den folgenden Clients unterstützt:

    • JDBC-Thin auf allen Plattformen
    • Oracle Instant Client OCI-C unter Linux
    • Oracle Data Provider for .NET (ODP.NET) Core
  • Wenn die Anwendung oder das Tool das Anfordern eines IAM-Datenbanktokens über die Client-API nicht unterstützt, kann der IAM-Benutzer zuerst das IAM-Datenbanktoken mit der Oracle Cloud Infrastructure-Befehlszeilenschnittstelle (CLI) abrufen und an einem Dateispeicherort speichern. Beispiel: Um SQL*Plus und andere Anwendungen und Tools mit dieser Verbindungsmethode zu verwenden, rufen Sie zuerst das Datenbanktoken mit der Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstelle (CLI) ab. Wenn der Datenbankclient für IAM-Datenbanktoken konfiguriert ist und sich ein Benutzer mit der Schrägstrichanmeldung anmeldet, verwendet der Datenbanktreiber das IAM-Datenbanktoken, das an einem Standard- oder einem anderen angegebenen Dateispeicherort gespeichert wurde.

  • Eine Clientanwendung oder ein Clienttool kann mit einem Oracle Cloud Infrastructure-IAM-Instanz-Principal oder -Resource Principal ein IAM-Datenbanktoken abrufen und sich mit diesem Token bei einer Autonomous Database-Instanz authentifizieren.

  • IAM-Benutzer und OCI-Anwendungen können ein Datenbanktoken bei IAM mit mehreren Methoden anfordern, darunter mit einem API-Schlüssel. Ein Beispiel finden Sie unter Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet. Unter Authentifizierung und Autorisierung von IAM-Benutzern für Oracle Autonomous Database finden Sie eine Beschreibung anderer Methoden, wie die Verwendung eines Delegationstokens in einer OCI-Cloud Shell.

Wenn ein Benutzer einen Benutzernamen/ein Kennwort für die Anmeldung eingibt, verwendet der Datenbanktreiber die Kennwortverifizierungsmethode, um unabhängig von der Einstellung des Clients für das Datenbanktoken auf die Datenbank zuzugreifen.

Voraussetzungen für Identity and Access Management-(IAM-)Authentifizierung auf Autonomous Database

Bevor Sie die Identity and Access Management-(IAM-)Authentifizierung in Autonomous Database verwenden, müssen Sie Folgendes sicherstellen:

Fügen Sie mit dem Networking-Service dem VCN (virtuellen Cloud-Netzwerk) und den Subnetzen, in denen sich Ihre Autonomous Database-Ressourcen befinden, ein Servicegateway, eine Routingregel und eine Egress-Sicherheitsregel hinzu.

  1. Erstellen Sie ein Servicegateway im VCN (virtuellen Cloud-Netzwerk), in dem sich Ihre Autonomous Database-Ressourcen befinden, indem Sie die Anweisungen unter Aufgabe 1: Servicegateway erstellen in der Oracle Cloud Infrastructure-Dokumentation befolgen.
  2. Nachdem Sie das Servicegateway erstellt haben, fügen Sie eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich Autonomous Database-Ressourcen befinden. Nur so können diese Ressourcen die Identity and Access Management-(IAM-)Authentifizierung über das Gateway verwenden.
    1. Gehen Sie zur Seite Subnetzdetails für das Subnetz.
    2. Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzes, um die Seite Routentabellendetails anzuzeigen.
    3. Prüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
      • Ziel: Alle IAD-Services in Oracle Services Network
      • Zieltyp: Servicegateway
      • Ziel: Der Name des Servicegateways, das Sie gerade im VCN erstellt haben

      Wenn keine solche Regel vorhanden ist, klicken Sie auf Routenregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.

    4. Zurück zur Seite Subnetzdetails für das Subnetz.
    5. Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
    6. Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
    7. Prüfen Sie in der Tabelle der vorhandenen Ausgangsregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
      • Zustandslos: Nein
      • Ziel: Alle IAD-Services in Oracle Services Network
      • IP-Protokoll: TCP
      • Quellportbereich: Alle
      • Zielportbereich: 443
    8. Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Eigenschaften hinzu.

Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.

Diese Einstellungen werden vom Flottenadministrator beim Erstellen der Exadata Cloud@Customer-Infrastruktur definiert, wie unter Exadata Database Service on Cloud@Customer mit der Konsole bereitstellen beschrieben.

Hinweis:

Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis sich die Exadata-Infrastruktur im Status Aktivierung erforderlich befindet. Sobald sie aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.

Für die Einrichtung eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.

Externe Identitätsprovider in Autonomous Database ändern

Beschreibt die Schritte zum Ändern des externen Identitätsproviders von (IAM-)Authentifizierung und -Autorisierung in einen anderen externen Authentifizierungsprovider und umgekehrt.

Die Oracle Cloud Infrastructure-(IAM-)Authentifizierung und -Autorisierung für Benutzer ist standardmäßig für neu bereitgestellte Autonomous Databases und autonome Containerdatenbanken aktiviert. Es gibt andere externe Authentifizierungsschemas wie zentral verwaltete Benutzer mit Active Directory (CMU-AD), Azure AD und Kerberos, die Sie für Autonomous Database aktivieren können. Es kann jedoch jeweils nur ein externes Authentifizierungsschema aktiviert sein.

So ermöglichen Sie Datenbankbenutzern, mit einem anderen externen Authentifizierungsschema eine Verbindung zu Autonomous Database herzustellen:
  1. Deaktivieren Sie die IAM-Integration mit der Prozedur DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION:
    Beispiel:
    BEGIN    
      DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /
    Zusätzliche Informationen finden Sie unter Prozedur DISABLE_EXTERNAL_AUTHENTICATION.
  2. Führen Sie die auf den folgenden Seiten beschriebenen Schritte aus, um ein anderes externes Authentifizierungsschema Ihrer Wahl zu konfigurieren:
  3. Ermöglichen Sie es IAM-Benutzern erneut, eine Verbindung zu Autonomous Database mit Oracle Cloud Infrastructure-(IAM-)Authentifizierung und -Berechtigung herzustellen.
    Führen Sie als ADMIN-Benutzer die Prozedur DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION mit den unten angegebenen Parametern aus:
    BEGIN
      DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
        type => 'OCI_IAM'
        force => TRUE
        );
    END;
    /

    Im obigen Beispiel werden alle externen Authentifizierungsprovider deaktiviert, die derzeit aktiviert sind, und Oracle Cloud Infrastructure-(IAM-)Authentifizierung und -Autorisierung aktiviert.

    In diesem Beispiel:
    • force ist auf TRUE gesetzt, um die derzeit aktivierte externe Authentifizierung zu deaktivieren.
    • type ist auf 'OCI_IAM' gesetzt, um die Oracle Cloud Infrastructure-(IAM-)Authentifizierung und -Autorisierung zu aktivieren und zu verwenden.

    Hinweis:

    Standardmäßig ist der Parameter force auf FALSE gesetzt. Wenn eine andere externe Authentifizierungsmethode aktiviert ist und force auf FALSE gesetzt ist, meldet DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION den folgenden Fehler: ORA-20004: Another external authentication is already enabled.

    Weitere Informationen finden Sie unter Prozedur ENABLE_EXTERNAL_AUTHENTICATION.

  4. Prüfen Sie den Wert des Systemparameters IDENTITY_PROVIDER_TYPE wie unten dargestellt:
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    NAME                   VALUE   
    ---------------------- ------- 
    identity_provider_type OCI_IAM 

Identity and Access Management-(IAM-)Gruppen und -Policys für IAM-Benutzer erstellen

Beschreibt die Schritte zum Schreiben von Policy-Anweisungen für eine IAM-Gruppe, um IAM-Benutzerzugriff auf Oracle Cloud Infrastructure-Ressourcen zu ermöglichen, insbesondere auf Autonomous Database-Instanzen.

Eine Policy ist eine Gruppe von Anweisungen, die angeben, wer wie auf welche Ressourcen zugreifen kann. Der Zugriff kann für den gesamten Mandanten, die Datenbanken in einem Compartment oder einzelne Datenbanken erteilt werden. Das bedeutet, dass Sie eine Policy-Anweisung schreiben, die einer bestimmten Gruppe einen bestimmten Zugriffstyp für einen bestimmten Ressourcentyp in einem bestimmten Compartment erteilt.

Hinweis:

Das Definieren einer Policy ist erforderlich, um mit IAM-Token auf Autonomous Database zuzugreifen. Eine Policy ist nicht erforderlich, wenn Sie für den Zugriff auf Autonomous Database IAM-Datenbankkennwörter verwenden.

So ermöglichen Sie es Autonomous Database, die Anmeldung von IAM-Benutzern bei der Datenbank mit IAM-Token zuzulassen:

  1. Führen Sie Oracle Cloud Infrastructure Identity and Access Management-Voraussetzungsprüfungen aus, indem Sie eine Gruppe erstellen und der Gruppe Benutzer hinzufügen.

    Erstellen Sie beispielsweise die Gruppe sales_dbusers.

    Weitere Informationen finden Sie unter Gruppen verwalten.

  2. Schreiben Sie Policy-Anweisungen, um den Zugriff auf Oracle Cloud Infrastructure-Ressourcen zu ermöglichen.
    1. Klicken Sie in der Oracle Cloud Infrastructure-Konsole auf Identität und Sicherheit.
    2. Klicken Sie unter ID und Sicherheit auf Policys.
    3. Um eine Policy zu schreiben, klicken Sie auf Policy erstellen.
    4. Geben Sie auf der Seite "Policy erstellen" einen Namen und eine Beschreibung ein.
    5. Wählen Sie auf der Seite "Policy erstellen" die Option Manuellen Editor anzeigen aus.
    6. Policy mit Policy Builder erstellen

      Beispiel: So erstellen Sie eine Policy, die Benutzern in der IAM-Gruppe DBUsers den Zugriff auf Autonomous Database in ihrem Mandanten gestattet:

      Allow group DBUsers to use autonomous-database-family in tenancy
      Beispiel: So erstellen Sie eine Policy, die den Zugriff der Mitglieder der Gruppe DBUsers auf autonome Datenbanken nur auf das Compartment testing_compartment beschränkt:
      allow group DBUsers to use autonomous-database-family in compartment testing_compartment 
      Beispiel: So erstellen Sie eine Policy, die den Gruppenzugriff auf eine einzelne Datenbank in einem Compartment beschränkt:
      allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'

      Weitere Informationen zu IAM-Policys für den Zugriff auf die Datenbank finden Sie unter IAM-Policy zur Autorisierung von Benutzerauthentifizierung mit Token erstellen in der Datenbanksicherheitsdokumentation.

    7. Klicken Sie auf Create.

      Weitere Informationen zu Policys finden Sie unter Policys verwalten.

Hinweise zum Erstellen von Policys zur Verwendung mit IAM-Benutzern in Autonomous Database:

  • Policys können IAM-Benutzern den Zugriff auf Autonomous Database-Instanzen im gesamten Mandanten und in einem Compartment gestatten oder den Zugriff auf eine einzelne Autonomous Database-Instanz begrenzen.

  • Sie können entweder mit dem Instanz-Principal oder mit dem Ressourcen-Principal Datenbanktoken abrufen, um eine Verbindung von Ihrer Anwendung zu einer Autonomous Database-Instanz herzustellen. Wenn Sie einen Instanz-Principal oder Ressourcen-Principal verwenden, müssen Sie eine dynamische Gruppe zuordnen. Daher können Sie Instanz-Principals und Ressourcen-Principals nicht exklusiv zuordnen. Sie können sie nur über ein gemeinsam verwendetes Mapping zuordnen und müssen die Instanz oder Ressourceninstanz in eine dynamische IAM-Gruppe einfügen.

    Sie können dynamische Gruppen erstellen und dynamische Gruppen in den Policys referenzieren, die Sie für den Zugriff auf Oracle Cloud Infrastructure erstellen. Weitere Informationen finden Sie unter Zugriffskontrollen planen und unterstützende Ressourcen erstellen und Dynamische Gruppen verwalten.

IAM-Benutzer zu Autonomous Database hinzufügen

Um IAM-Benutzer hinzuzufügen und Zugriff auf Autonomous Database zuzulassen, ordnen Sie globale Datenbankbenutzer mit CREATE USER- oder ALTER USER-Anweisungen (mit Klausel IDENTIFIED GLOBALLY AS) IAM-Gruppen oder -Benutzern zu.

Die Autorisierung von IAM-Benutzern bei einer Autonomous Database-Instanz erfolgt durch Zuordnung von globalen IAM-Benutzern (Schemas) zu IAM-Benutzern (exklusive Zuordnung) oder IAM-Gruppen (Zuordnung zu gemeinsamem Schema).

So autorisieren Sie IAM-Benutzer auf einer Autonomous Database-Instanz:

  1. Melden Sie sich als ADMIN-Benutzer bei der Datenbank an, die für die Verwendung von IAM aktiviert ist (der ADMIN-Benutzer verfügt über die Systemberechtigungen CREATE USER und ALTER USER, die Sie für diese Schritte benötigen).
  2. Erstellen Sie eine Zuordnung zwischen dem Autonomous Database-Benutzer (Schema) mit CREATE USER- oder ALTER USER-Anweisungen und der Klausel IDENTIFIED GLOBALLY AS, und geben Sie den IAM-Gruppennamen an.

    Verwenden Sie die folgende Syntax, um einen globalen Benutzer einer IAM-Gruppe zuzuordnen:

    CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';

    Beispiel: So ordnen Sie eine IAM-Gruppe namens db_sales_group einem gemeinsamen globalen Datenbankbenutzer namens sales_group zu:

    CREATE USER sales_group IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=db_sales_group';
    

    Dadurch wird eine gemeinsame globale Benutzerzuordnung erstellt. Die Zuordnung mit dem globalen Benutzer sales_group gilt für alle Benutzer in der IAM-Gruppe. Daher kann sich jedes Mitglied in db_sales_group mit seinen IAM-Zugangsdaten bei der Datenbank anmelden (über die gemeinsame Zuordnung des globalen Benutzers sales_group).

    Das folgende Beispiel zeigt, wie Sie dies für eine Nicht-Standarddomain erreichen:

    CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=sales_domain/db_sales_group';
  3. Wenn Sie zusätzliche globale Benutzerzuordnungen für andere IAM-Gruppen oder -Benutzer erstellen möchten, führen Sie die folgenden Schritte für jede IAM-Gruppe bzw. jeden Benutzer aus.

Hinweis:

Datenbankbenutzer, die nicht IDENTIFIED GLOBALLY sind, können sich weiterhin wie zuvor anmelden, selbst wenn für Autonomous Database die IAM-Authentifizierung aktiviert ist.

So ordnen Sie einem globalen Oracle Database-Benutzer exklusiv einen lokalen IAM-Benutzer zu:

  1. Melden Sie sich als ADMIN-Benutzer bei der Datenbank an, die für die Verwendung von IAM aktiviert ist (der ADMIN-Benutzer verfügt über die Systemberechtigungen CREATE USER und ALTER USER, die Sie für diese Schritte benötigen).

  2. Erstellen Sie eine Zuordnung zwischen dem Autonomous Database-Benutzer (Schema) mit CREATE USER- oder ALTER USER-Anweisungen und der Klausel IDENTIFIED GLOBALLY AS, und geben Sie den lokalen IAM-Benutzernamen an.

    Beispiel: So erstellen Sie einen neuen globalen Datenbankbenutzer namens peter_fitch und ordnen diesen Benutzer einem vorhandenen lokalen IAM-Benutzer namenspeterfitch zu:

    CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'

    Das folgende Beispiel zeigt, wie Sie den Benutzer erstellen, indem Sie eine Nicht-Standarddomain (sales_domain) angeben:

    CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
    'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';

IAM-Rollen in Autonomous Database hinzufügen

Erstellen Sie optional globale Rollen, um zusätzliche Datenbankrollen und -berechtigungen für IAM-Benutzer bereitzustellen, wenn mehrere IAM-Benutzer demselben gemeinsamen globalen Benutzer zugeordnet werden.

Die Verwendung globaler Rollen ist optional, wenn Sie entweder eine exklusive IAM-Zuordnung zu einem Benutzer (Schema) oder eine gemeinsame Benutzerzuordnung in Autonomous Database verwenden. Beispiel: Alle Berechtigungen und Rollen können dem gemeinsamen Schema erteilt werden, und allen IAM-Benutzern, die dem gemeinsamen Schema zugeordnet sind, werden die Berechtigungen und Rollen erteilt, die dem gemeinsamen Schema zugewiesen sind.

Mit einer globalen Rolle können Sie optional Benutzer unterscheiden, die dasselbe gemeinsame Schema verwenden. Beispiel: Eine Reihe von Benutzern kann dasselbe gemeinsame Schema haben, und das gemeinsame Schema kann die Berechtigung CREATE SESSION besitzen. Mit globalen Rollen können dann unterschiedliche Berechtigungen und Rollen bereitgestellt und verschiedenen Benutzergruppen zugewiesen werden, die alle dasselbe gemeinsame Schema verwenden.

Um IAM-Benutzern in Autonomous Database zusätzliche Rollen zu erteilen, müssen globale Autonomous Database-Rollen IAM-Gruppen zugewiesen werden.

So ordnen Sie IAM-Gruppen globale Autonomous Database-Rollen zu:

  1. Melden Sie sich als ADMIN-Benutzer bei der Datenbank an, die für die Verwendung von IAM aktiviert ist (der ADMIN-Benutzer verfügt über die Systemberechtigungen CREATE USER und ALTER USER, die Sie für diese Schritte benötigen).
  2. Legen Sie die Datenbankautorisierung für Autonomous Database-Rollen mit der Anweisung CREATE ROLE oder ALTER ROLE fest. Fügen Sie die Klausel IDENTIFIED GLOBALLY AS ein, und geben Sie dabei den IAM-Gruppennamen an.

    Verwenden Sie die folgende Syntax, um eine globale Rolle einer IAM-Gruppe zuzuordnen:

    CREATE ROLE global_role IDENTIFIED GLOBALLY AS
        'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';

    Beispiel: So ordnen Sie eine IAM-Gruppe namens ExporterGroup einer gemeinsamen globalen Datenbankrolle namens export_role zu:

    CREATE ROLE export_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=ExporterGroup';
    

    Das folgende Beispiel zeigt, wie Sie die Rolle durch Angabe einer Nicht-Standarddomain sales_domain erstellen:

    CREATE ROLE export_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    Alle Mitglieder der ExporterGroup in der sales_domain-Domain werden mit der globalen Datenbankrolle export_role autorisiert, wenn sie sich bei der Datenbank anmelden.

  3. Verwenden Sie GRANT-Anweisungen, um der globalen Rolle die erforderlichen Berechtigungen oder andere Rollen zu erteilen.
    GRANT CREATE SESSION TO export_role;
    GRANT DWROLE TO export_role;
  4. Wenn Sie eine vorhandene Datenbankrolle mit einer IAM-Gruppe verknüpfen möchten, verwenden Sie die ALTER ROLE-Anweisung, um die vorhandene Datenbankrolle zu ändern und die Rolle einer IAM-Gruppe zuzuordnen. Mit der folgenden Syntax können Sie eine vorhandene Datenbankrolle ändern, um sie einer IAM-Gruppe zuzuordnen:
    ALTER ROLE existing_database_role 
       IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';

Wenn Sie zusätzliche globale Rollenzuordnungen für andere IAM-Gruppen erstellen möchten, führen Sie die folgenden Schritte für jede IAM-Gruppe aus.

IAM-Datenbankkennwort für IAM-Benutzer erstellen

Um einen IAM-Benutzer hinzuzufügen und ihm die Anmeldung bei Autonomous Database mit einem Benutzernamen und Kennwort zu gestatten, müssen Sie ein IAM-Datenbankkennwort erstellen.

Weitere Informationen finden Sie unter Mit IAM-Datenbankkennwörtern arbeiten.

Verbindung zu Autonomous Database mit Identity and Access Management-(IAM-)Authentifizierung herstellen

Nachdem der Datenbankbenutzer ADMIN die globalen Benutzer und globalen Rollen den IAM-Benutzern und IAM-Gruppen zugeordnet hat, melden sich Benutzer mit ihren Oracle Cloud Infrastructure-IAM-Zugangsdaten bei der Autonomous Database-Instanz an oder greifen über einOracle Cloud Infrastructure-IAM-Datenbanktoken auf die Datenbank zu.

Sie können sich weiterhin mit Ihrem Benutzernamen und Kennwort für Ihren lokalen Datenbankaccount (nicht-globaler Datenbankbenutzeraccount) bei Autonomous Database anmelden.

Als Oracle Cloud Infrastructure-IAM-Benutzer können Sie mit einem Datenbankclient auf eine Autonomous Database-Instanz zugreifen. Um einen Client mit Oracle Cloud Infrastructure-IAM-Zugangsdaten (Benutzername und Kennwort) und einer Kennwortverifizierung zu verwenden, muss der Datenbankclient 12c oder höher sein.

Alternativ können Sie mit einem Oracle Cloud Infrastructure-IAM-Datenbanktoken auf eine Autonomous Database-Instanz mit unterstützten Clients zugreifen:

Hinweis:

Wenn sich Ihre Autonomous Database-Instanz im eingeschränkten Modus befindet, können nur die Benutzer mit der Berechtigung RESTRICTED SESSION wie ADMIN eine Verbindung zur Datenbank herstellen.

Verbindung zu einer Autonomous Database on Dedicated Exadata Infrastructure-Instanz mit IAM herstellen

IAM-Benutzer können sich entweder mit einer IAM-Datenbankkennwortverifizierung oder einem IAM-Token bei der Autonomous Database on Dedicated Exadata Infrastructure-Instanz anmelden.

Die Verwendung der IAM-Datenbankkennwortverifizierung ähnelt dem Oracle Database-Kennwortauthentifizierungsprozess. Die Kennwortverifizierung (verschlüsselter Hash des Kennworts) wird jedoch nicht in Autonomous Database on Dedicated Exadata Infrastructure gespeichert, sondern im IAM-Benutzerprofil von Oracle Cloud Infrastructure (OCI).

Die zweite Verbindungsmethode, bei der ein IAM-Token für die Datenbank verwendet wird, ist moderner. Die Verwendung eines tokenbasierten Zugriffs ist für Cloud-Ressourcen wie Autonomous Database on Dedicated Exadata Infrastructure besser geeignet. Das Token basiert auf der Stärke, die der IAM-Endpunkt durchsetzen kann. Dies kann eine Multifaktor-Authentifizierung sein, die stärker ist als die alleinige Verwendung von Kennwörtern. Ein weiterer Vorteil der Verwendung von Token besteht darin, dass die Kennwortverifizierung (die als sensibel gilt) nie gespeichert wird oder im Arbeitsspeicher verfügbar ist.

Clientverbindungen, die eine IAM-Datenbankkennwortverifizierung verwenden

Nachdem Sie die für den IAM-Benutzer erforderliche Autorisierung konfiguriert haben, kann sich dieser Benutzer ohne zusätzliche Konfiguration mit einer vorhandenen Clientanwendung wie SQL*Plus oder SQLcl anmelden.

Der IAM-Benutzer gibt den IAM-Benutzernamen und das IAM-Datenbankkennwort (nicht das Oracle Cloud Infrastructure-(OCI-)Konsolenkennwort) mit einem beliebigen aktuell unterstützten Datenbankclient ein. Der einzige Constraint besteht darin, dass die Datenbankclientversion Oracle Database Release 12.1.0.2 oder höher sein muss, um Oracle Database 12c-Kennwörter verwenden zu können. Der Datenbankclient muss die Kennwortverifizierung 12C verwenden können. Die Verwendung der Verifizierungsverschlüsselung 11G wird mit IAM nicht unterstützt. Es ist keine spezielle Client- oder Toolkonfiguration erforderlich, damit der IAM-Benutzer eine Verbindung zur Autonomous Database on Dedicated Exadata Infrastructure-Instanz herstellen kann.

Clientverbindungen, die ein Token verwenden

Für den IAM-Tokenzugriff auf Autonomous Database on Dedicated Exadata Infrastructure fordert die Clientanwendung oder das Clienttool ein Datenbanktoken von IAM für den IAM-Benutzer an.

Die Clientanwendung übergibt das Datenbanktoken über die Datenbankclient-API direkt an den Datenbankclient.

Wenn die Anwendung oder das Tool nicht zur Anforderung eines IAM-Tokens aktualisiert wurde, kann der IAM-Benutzer das Datenbanktoken über die Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstelle (CLI) anfordern und speichern. Sie können ein Datenbankzugriffstoken (db-token) mit den folgenden Zugangsdaten anfordern:

  • Sicherheitstoken (mit IAM-Authentifizierung), Delegationstoken (in der OCI Cloud Shell) und API-keys. Hierbei handelt es sich um Zugangsdaten, die den IAM-Benutzer darstellen, um die Authentifizierung zu aktivieren.
  • Instanz-Principal-Token, mit denen Instanzen zu autorisierten Akteuren (oder Principals) werden, um nach der Authentifizierung Aktionen für Serviceressourcen auszuführen
  • Resource Principal-Token. Hierbei handelt es sich um Zugangsdaten, mit denen sich die Anwendung bei anderen Oracle Cloud Infrastructure-Services authentifizieren kann.

Wenn sich der IAM-Benutzer mit einer Schrägstrichanmeldung / beim Client anmeldet und der Parameter OCI_IAM konfiguriert ist (sqlnet.ora, tnsnames.ora oder als Teil einer Verbindungszeichenfolge), ruft der Datenbankclient das Datenbanktoken aus einer Datei ab. Wenn der IAM-Benutzer einen Benutzernamen und ein Kennwort übermittelt, verwendet die Verbindung den für Clientverbindungen mit IAM-Datenbankkennwortverifizierung beschriebenen IAM-Datenbankverifizierungszugriff. Die Anweisungen in dieser Dokumentation zeigen, wie Sie die OCI-CLI als Helper für das Datenbanktoken verwenden. Wenn die Anwendung oder das Tool für den Einsatz mit IAM aktualisiert wurde, befolgen Sie die Anweisungen zu der Anwendung oder dem Tool. Zu den allgemeinen Anwendungsfällen gehören SQL*Plus On Premise, SQLcl On Premise, SQL*Plus in der Cloud Shell oder Anwendungen, die SEP-Wallets verwenden.

In den folgenden Themen wird Folgendes erläutert:
  • Clientverbindung konfigurieren, damit SQL*Plus ein IAM-Datenbankkennwort verwenden kann

  • Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet

  • Mit einem Instanz-Principal über ein Oracle Cloud Infrastructure-IAM-Datenbanktoken auf die Datenbank zugreifen

Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Datenbankkennwort verwendet

Sie können SQL*Plus so konfigurieren, dass ein IAM-Datenbankkennwort verwendet wird.

  • Melden Sie sich als IAM-Benutzer mit der folgenden Syntax bei der Autonomous Database-Instanz an:
    CONNECT user_name@db_connect_string
    Enter password: password

    In dieser Spezifikation ist user_name der IAM-Benutzername. Für domain_name/user_name zusammen sind maximal 128 Byte zulässig.

    Das folgende Beispiel zeigt die Anmeldung des IAM-Benutzers peter_fitch bei einer Autonomous Database-Instanz.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Bei einigen Sonderzeichen müssen user_name und password in doppelte Anführungszeichen gesetzt werden. Beispiel:

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet

Sie können eine Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet.

  1. Stellen Sie sicher, dass Sie über einen IAM-Benutzeraccount verfügen.
  2. Fragen Sie bei einem IAM-Administrator und Oracle Database-Administrator nach, ob Sie über eine Policy verfügen, mit der Sie auf die Datenbank im Compartment oder in Ihrem Mandanten zugreifen können, und ob Sie einem globalen Schema in der Datenbank zugeordnet sind.
  3. Wenn Ihre Anwendung oder Ihr Tool keine direkte IAM-Integration unterstützt, sollten Sie die OCI-CLI herunterladen, installieren und konfigurieren. (Informationen hierzu finden Sie unter OCI-Befehlszeilenschnittstelle - Schnellstart.) Richten Sie im Rahmen der OCI-CLI-Konfiguration einen API-Schlüssel ein, und wählen Sie Standardwerte aus.
    1. Richten Sie den API-Schlüsselzugriff für den IAM-Benutzer ein.
    2. Rufen Sie das db-token ab. Beispiel:
      • db-token mit einem API-key über die Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstelle abrufen:
        oci iam db-token get
      • db-token mit einem Sicherheitstoken (oder Sessiontoken) abrufen:
        oci iam db-token get --auth security_token

        Wenn das Sicherheitstoken abgelaufen ist, wird ein Fenster angezeigt, damit der Benutzer sich erneut bei OCI anmelden kann. Dadurch wird das Sicherheitstoken für den Benutzer generiert. Die OCI-CLI verwendet dieses aktualisierte Token, um db-token abzurufen.

      • db-token mit einem Delegationstoken abrufen: Wenn Sie sich bei der Cloud Shell anmelden, wird das Delegationstoken automatisch generiert und im Verzeichnis /etc platziert. Um dieses Token abzurufen, führen Sie den folgenden Befehl in der Cloud Shell aus:
        oci iam db-token get
      • Instanztoken über die OCI-Befehlszeilenschnittstelle abrufen:
        oci iam db-token get --auth instance_principal
    3. Der Datenbankclient kann auch so konfiguriert werden, dass ein Datenbanktoken mit dem IAM-Benutzernamen und dem IAM-Datenbankkennwort abgerufen wird.
    Weitere Informationen finden Sie unter Erforderliche Schlüssel und OCIDs.
  4. Stellen Sie sicher, dass Sie die neuesten Releaseupdates für die Oracle Database-Clientreleases 19c und 21c verwenden.
    Diese Konfiguration funktioniert nur mit Oracle Database-Clientrelease 19c oder 21c.
  5. Um das Wallet aus Autonomous Database herunterzuladen, gehen Sie wie folgt vor, um es für die Verwendung mit SQL*Plus zu konfigurieren.
    1. Vergewissern Sie sich, dass der DN-Abgleich aktiviert ist, indem Sie in sqlnet.ora nach SSL_SERVER_DN_MATCH=ON suchen.
    2. Konfigurieren Sie den Datenbankclient für die Verwendung des IAM-Tokens, indem Sie TOKEN_AUTH=OCI_TOKEN der Datei sqlnet.ora hinzufügen. Da Sie die Standardspeicherorte für die Datenbanktokendatei verwenden, müssen Sie keinen Speicherort für das Token angeben.
    Die Werte TOKEN_AUTH und TOKEN_LOCATION in den tnsnames.ora-Verbindungszeichenfolgen haben Vorrang vor den sqlnet.ora-Einstellungen für diese Verbindung. Beispiel für die Verbindungszeichenfolge, wenn sich das Token am Standardspeicherort (~/.oci/db-token für Linux) befindet:
    (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)))
    
Nachdem die Verbindungszeichenfolge mit dem Parameter TOKEN_AUTH aktualisiert wurde, kann sich der IAM-Benutzer bei der Autonomous Database-Instanz anmelden, indem Sie den folgenden Befehl ausführen, um SQL*Plus zu starten. Sie können den Verbindungsdeskriptor selbst einschließen oder den Namen des Deskriptors aus der Datei tnsnames.ora verwenden.
connect /@exampledb_high

Oder:

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)))

Der Datenbankclient ist bereits für den Abruf von db-token konfiguriert, weil TOKEN_AUTH bereits festgelegt wurde, entweder über die Datei sqlnet.ora oder in einer Verbindungszeichenfolge. Der Datenbankclient ruft db-token ab, signiert es mit dem Private Key und sendet das Token dann an Autonomous Database. Wenn ein IAM-Benutzername und ein IAM-Datenbankkennwort anstelle eines Schrägstrichs / angegeben werden, stellt der Datenbankclient eine Verbindung mit dem Kennwort anstatt mit db-token her.

Instanz-Principal für den Zugriff auf Autonomous Database mit Identity and Access Management-(IAM-)Authentifizierung verwenden

Nachdem der ADMIN-Benutzer Oracle Cloud Infrastructure-IAM auf Autonomous Database aktiviert hat, kann eine Anwendung mit einem Instanz-Principal über ein Oracle Cloud Infrastructure-IAM-Datenbanktoken auf die Datenbank zugreifen.

Proxyauthentifizierung konfigurieren

Mit der Proxyauthentifizierung kann ein IAM-Benutzer über einen Proxy auf ein Datenbankschema zugreifen, um Aufgaben wie die Anwendungswartung auszuführen.

Die Proxyauthentifizierung wird in der Regel verwendet, um den realen Benutzer zu authentifizieren und ihn dann zu autorisieren, ein Datenbankschema mit den Schemaberechtigungen und Rollen zu verwenden, um eine Anwendung zu verwalten. Alternativen wie das Freigeben des Kennworts für das Anwendungsschema gelten als unsicher. Zudem lässt sich nicht prüfen, welcher tatsächliche Benutzer eine Aktion ausgeführt hat.

Ein Anwendungsfall wäre eine Umgebung, in der sich ein benannter IAM-Benutzer und Anwendungsdatenbankadministrator mit seinen Zugangsdaten authentifizieren und dann über einen Proxy auf einen Datenbankschemabenutzer (z.B. hrapp) zugreifen kann. Mit dieser Authentifizierung kann der IAM-Administrator die hrapp-Berechtigungen und -Rollen als Benutzer hrapp verwenden, um die Anwendungswartung auszuführen, jedoch weiterhin seine IAM-Zugangsdaten zur Authentifizierung verwenden. Ein Anwendungsdatenbankadministrator kann sich bei der Datenbank anmelden und dann über einen Proxy auf ein Anwendungsschema zugreifen, um dieses Schema zu verwalten.

Sie können die Proxyauthentifizierung sowohl für die Kennwort- als auch für die Tokenauthentifizierungsmethode konfigurieren.

Proxyauthentifizierung für den IAM-Benutzer konfigurieren

Um die Proxyauthentifizierung für einen IAM-Benutzer zu konfigurieren, muss der IAM-Benutzer bereits über eine Zuordnung zu einem globalen Schema (exklusive oder gemeinsame Zuordnung) verfügen. Ein separates Datenbankschema für den IAM-Benutzer muss für die Weiterleitung per Proxy ebenfalls verfügbar sein.

Wenn Sie sichergestellt haben, dass Ihnen diese Art von Benutzer vorliegt, ändern Sie den Datenbankbenutzer so, dass der IAM-Benutzer über einen Proxy darauf zugreifen kann.
  1. Melden Sie sich als Benutzer mit den Systemberechtigungen ALTER USER bei der Autonomous Database-Instanz an.

  2. Erteilen Sie dem IAM-Benutzer die Berechtigung, über einen Proxy auf den lokalen Datenbankbenutzeraccount zuzugreifen. Ein IAM-Benutzer kann nicht im Befehl referenziert werden. Daher muss der Proxy zwischen dem globalen Datenbankbenutzer (dem IAM-Benutzer zugeordnet) und dem Zieldatenbankbenutzer erstellt werden. Im folgenden Beispiel ist hrapp das Datenbankschema, auf das über einen Proxy zugegriffen werden soll, und peterfitch_schema ist der globale Datenbankbenutzer, der ausschließlich dem Benutzer peterfitch zugeordnet ist.
    ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;

Nun kann sich der IAM-Benutzer mit dem Proxy bei der Datenbankinstanz anmelden. Beispiel:

So stellen Sie eine Verbindung mit einer Kennwortverifizierung her:
CONNECT peterfitch[hrapp]@connect_string
Enter password: password
So stellen Sie eine Verbindung über ein Token her:
CONNECT [hrapp]/@connect_string

Proxyauthentifizierung des IAM-Benutzers validieren

Sie können die Proxykonfiguration des IAM-Benutzers sowohl für Kennwort- als auch für Tokenauthentifizierungsmethoden validieren.
  1. Melden Sie sich als Benutzer mit den Systemberechtigungen CREATE USER und ALTER USER bei der Autonomous Database-Instanz an.

  2. Stellen Sie eine Verbindung als IAM-Benutzer her, und führen Sie die Befehle SHOW USER und SELECT SYS_CONTEXT aus. Angenommen, Sie möchten die Proxyauthentifizierung des IAM-Benutzers peterfitch prüfen, wenn dieser über einen Proxy auf den Datenbankbenutzer hrapp zugreift. Sie müssen sich mit den verschiedenen hier angegebenen Authentifizierungsmethoden bei der Datenbank anmelden. Die Ausgabe der von Ihnen ausgeführten Befehle ist jedoch für alle Typen identisch.
    • Kennwortauthentifizierung:
      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"
    • Tokenauthentifizierung:
      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"

Datenbanklink mit authentifizierten IAM-Benutzern verwenden

Mit einem Datenbanklink können Sie als Oracle Cloud Infrastructure-IAM-Benutzer eine Verbindung von einer Autonomous Database-Instanz zu einer anderen herstellen.

Mit einem angemeldeten oder festen Benutzerdatenbanklink können Sie als Oracle Cloud Infrastructure-IAM-Benutzer eine Verbindung zu einer autonomen Datenbank herstellen.

Hinweis:

Der aktuelle Benutzerdatenbanklink wird für die Verbindung als Oracle Cloud Infrastructure IAM-Benutzer zu Autonomous Database nicht unterstützt.
  • Angemeldeter Benutzerdatenbanklink Bei einem angemeldeten Benutzerdatenbanklink muss ein IAM-Benutzer einem Schema in der Quell- und Zieldatenbank zugeordnet sein, die über einen Datenbanklink verbunden sind. Sie können eine Datenbankkennwortverifizierung oder ein IAM-Datenbanktoken verwenden, um einen angemeldeten Benutzerdatenbanklink zu verwenden.

  • Fester Benutzerdatenbanklink: Ein fester Benutzerdatenbanklink kann mit einem Datenbankbenutzer oder einem IAM-Benutzer erstellt werden. Wenn Sie einen IAM-Benutzer als festen Benutzerdatenbanklink verwenden, muss der IAM-Benutzer eine Schemazuordnung in der Zieldatenbank haben. Der IAM-Benutzer für einen Datenbanklink kann nur mit einer Kennwortverifizierung konfiguriert werden.

Identity and Access Management-(IAM-)Authentifizierung auf Autonomous Database deaktivieren

Beschreibt die Schritte zum Deaktivieren des IAM-Benutzerzugriffs über externe Authentifizierung für Autonomous Database.

Sie können den IAM-Benutzerzugriff auf Ihrer Autonomous Database-Instanz mit dem Befehl ALTER SYSTEM deaktivieren, wie unten dargestellt:
ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

Wenn Sie den Zugriff auf IAM auch aus der Ressource (autonome Containerdatenbank oder autonome Datenbank) aktualisieren möchten, müssen Sie die IAM-Gruppe und die eingerichteten Policys möglicherweise entfernen oder ändern, um den Zugriff auf IAM aus diesen Ressourcen zuzulassen.

Hinweise zur Verwendung von Autonomous Database-Tools mit Identity and Access Management-(IAM-)Authentifizierung

Bietet Hinweise zur Verwendung von Autonomous Database-Tools mit aktivierter IAM-Authentifizierung.