Identity and Access Management-Authentifizierung mit Base Database Service verwenden

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

Hinweis:

Oracle Database unterstützt die Base Database Service-Integration für OCI IAM mit Identitätsdomains sowie das Legacy-IAM ohne Identitätsdomains. Sowohl Standard- als auch Nicht-Standarddomainbenutzer und -gruppen werden unterstützt, wenn IAM mit Identitätsdomains verwendet wird.

Unterstützung für nicht standardmäßige benutzerdefinierte Domains ist nur mit Oracle Database Release 19c, Version 19.21 und höher verfügbar (aber nicht mit Oracle Database Release 21c).

IAM-Authentifizierung

Die OCI IAM-Integration mit Base Database Service unterstützt die Authentifizierung mit Datenbankkennwortverifizierung und die tokenbasierte Authentifizierung. Weitere Informationen zur Architektur für die Verwendung von IAM-Benutzern in Base Database Service finden Sie unter IAM-Benutzer für Oracle-DBaaS-Datenbanken authentifizieren und autorisieren.

Authentifizierung mit einem IAM-Datenbankkennwort

Sie können in einer Oracle Database-Instanz Benutzern Zugriff mit einem OCI-IAM-Datenbankkennwort (über eine Kennwortverifizierung) erteilen.

Für den Zugriff auf die Kennwortverifizierungsdatenbank erstellen Sie die Zuordnungen für IAM-Benutzer und OCI-Anwendungen zur Oracle Database-Instanz. Die IAM-Benutzeraccounts selbst werden in IAM verwaltet. Die Benutzerkonten und Benutzergruppen können sich entweder in der Standarddomain oder in einer benutzerdefinierten, nicht standardmäßigen Domain befinden.

Hinweis:

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

Mit einem OCI IAM-Datenbankkennwort kann sich ein IAM-Benutzer bei einer Datenbankinstanz anmelden, genau wie 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 OCI-Konsole. Wenn Sie einen IAM-Benutzer mit einer Kennwortverifizierung verwenden, können Sie sich mit einem beliebigen unterstützten Datenbankclient bei der Datenbank anmelden, solange der Datenbankclient die Oracle Database 12c-Kennwortverifizierung unterstützt.

Auf IAM-SSO-Token basierte Authentifizierung

Sie können in einer Oracle Database-Instanz die Verwendung von OCI-IAM-SSO-Token aktivieren.

Für den Zugriff auf die Tokendatenbank erstellen Sie die Zuordnungen für IAM-Benutzer und OCI-Anwendungen zur Oracle Database-Instanz. Die IAM-Benutzeraccounts selbst werden in IAM verwaltet. Die Benutzerkonten und Benutzergruppen können sich entweder in der Standarddomain oder in einer benutzerdefinierten, nicht standardmäßigen Domain befinden.

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. Für die Verwendung des IAM-Datenbanktokens ist der Oracle Database-Client 19.16 und höher (nicht 21c) erforderlich. Bei einigen Oracle Database-Clients ab 21.5 sind die IAM-Datenbanktokenfunktionen begrenzt (nicht vollständig) verfügbar.
  • Wenn die Anwendung oder das Tool das Anfordern eines IAM-Datenbanktokens und das Senden des Tokens an die Datenbank über die Client-API nicht unterstützt, kann der IAM-Benutzer zuerst das IAM-Datenbanktoken mit der OCI-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 OCI-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 OCI IAM-Instanz-Principal oder -Resource-Principal ein IAM-Datenbanktoken abrufen und sich mit diesem Token bei einer Oracle Database-Instanz authentifizieren.
  • IAM-Benutzer und OCI-Anwendungen können ein Datenbanktoken bei IAM mit mehreren Methoden anfordern, darunter mit einem API-Schlüssel.

    Weitere Informationen zum Konfigurieren der Clientverbindung finden Sie unter Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet. Weitere Informationen zu anderen Methoden wie der Verwendung eines Delegationstokens in einer OCI-Cloud Shell finden Sie unter IAM-Benutzer für Oracle-DBaaS-Datenbanken authentifizieren und autorisieren.

Wenn ein Benutzer einen Benutzernamen und ein Kennwort für die Anmeldung eingeben, verwendet der Datenbanktreiber für den Zugriff auf die Datenbank die Kennwortverifizierungsmethode als Standardmethode.

Voraussetzungen

Die folgenden Voraussetzungen müssen für die IAM-Authentifizierung in Base Database Service erfüllt sein.

Netzwerkeinstellungen

Bevor Sie die IAM-Authentifizierung für Datenbanken verwenden, müssen Sie mit dem Networking-Service ein Servicegateway, eine Routingregel und eine Egress-Sicherheitsregel zum virtuellen Cloud-Netzwerk (VCN) und den Subnetzen hinzufügen, in denen sich Ihre Datenbankressourcen befinden.

  1. Erstellen Sie ein Servicegateway in dem VCN, in dem sich Ihre Datenbankressourcen befinden, indem Sie die Anweisungen unter Servicegateway erstellen 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 Datenbankressourcen befinden, damit diese Ressourcen die IAM-Authentifizierung über das Gateway verwenden können:
    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 derartige Regel vorhanden ist, klicken Sie auf Routingregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.

    4. Kehren Sie zur Seite Subnetzdetails für das Subnetz zurück.
    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 Egress-Regeln, 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.

Umgebungseinstellungen

Prüfen Sie, ob WALLET_ROOT konfiguriert ist oder nicht:

show parameters wallet_root;
NAME               TYPE        VALUE
------------------ ----------- --------
wallet_root        string     

Wenn für WALLET_ROOT kein Verzeichnisspeicherort angezeigt wird, können Sie diese Datenbank nicht mit IAM konfigurieren. WALLET_ROOT muss beim nächsten Patching der Datenbank festgelegt werden. Für neue Datenbanken ist WALLET_ROOT festgelegt.

TLS-Konfiguration

Wenn IAM-Token vom Datenbankclient an den Datenbankserver gesendet werden sollen, muss eine TLS-Verbindung bestehen. Das TLS-Wallet mit dem Datenbankzertifikat für die Base DB Service-Instanz muss im Speicherort WALLET_ROOT gespeichert sein. Erstellen Sie ein tls-Verzeichnis mit folgender Struktur: WALLET_ROOT/<PDB GUID>/tls

Für die Konfiguration von TLS zwischen Datenbankclient und Server sind mehrere Optionen verfügbar.

  • Verwenden eines selbstsignierten Datenbankserverzertifikats oder eines Datenbankserverzertifikats, das von einer allgemein bekannten Certificate Authority signiert ist.
  • Einseitige TLS (TLS) oder gegenseitige bzw. wechselseitige TLS (mTLS).
  • Client mit oder ohne Wallet.

Selbstsigniertes Zertifikat: Selbstsignierte Zertifikate werden in der Regel für intern bereitgestellte IT-Ressourcen verwendet, da Sie diese selbst erstellen können und die Bereitstellung kostenlos ist. Die Ressource (in unserem Fall der Datenbankserver) verfügt über ein selbstsigniertes Zertifikat, um sich beim Datenbankclient zu authentifizieren. Das selbstsignierte Zertifikat und das Root-Zertifikat werden im Datenbankserver-Wallet gespeichert. Damit der Datenbankclient das Datenbankserverzertifikat erkennen kann, ist auf dem Client auch eine Kopie des Root-Zertifikats erforderlich. Dieses selbst erstellte Root-Zertifikat kann in einem clientseitigen Wallet gespeichert oder im Standardzertifikatspeicher des Clientsystems (nur Windows und Linux) installiert werden. Wenn die Session eingerichtet wurde, prüft der Datenbankclient, ob das vom Datenbankserver übermittelte Zertifikat von demselben Root-Zertifikat signiert wurde.

Eine bekannte Certificate Authority: Die Verwendung einer allgemein bekannten Root Certificate Authority hat einige Vorteile, da das Root-Zertifikat wahrscheinlich bereits im Standardzertifikatspeicher des Clientsystems gespeichert ist. Der Client muss das Root-Zertifikat nicht in einem zusätzlichen Schritt speichern, wenn es sich um ein allgemeines Root-Zertifikat handelt. Der Nachteil besteht darin, dass mit dieser Option normalerweise Kosten verbunden sind.

Einseitige TLS: In einer TLS-Standardsession übergibt nur der Server ein Zertifikat an den Client, um sich zu authentifizieren. Der Client benötigt kein separates Clientzertifikat, um sich beim Server zu authentifizieren (ähnlich wie bei der Einrichtung von HTTPS-Sessions). Während für die Datenbank ein Wallet zum Speichern des Serverzertifikats erforderlich ist, benötigt der Client nur das Root-Zertifikat, mit dem das Serverzertifikat signiert ist.

Zweiseitige TLS (auch als gegenseitige TLS, mTLS bezeichnet): In mTLS verfügen sowohl der Client als auch der Server über Identitätszertifikate, die sie sich gegenseitig anzeigen. In den meisten Fällen werden diese beiden Zertifikate von demselben Root-Zertifikat signiert, sodass dasselbe Root-Zertifikat für den Datenbankserver und den Client zur Authentifizierung des jeweils anderen Zertifikats verwendet werden kann. Für die Authentifizierung des Benutzers wird manchmal mTLS verwendet, weil die Benutzeridentität vom Datenbankserver über das Zertifikat authentifiziert wird. Dieser Vorgang ist für das Übergeben von IAM-Token nicht erforderlich, kann aber beim Übergeben von IAM-Token verwendet werden.

Client mit Wallet:Ein Client-Wallet ist obligatorisch, wenn das Clientzertifikat mit mTLS gespeichert wird. Das Root-Zertifikat kann jedoch entweder in demselben Wallet oder im Standardzertifikatspeicher des Systems gespeichert werden.

Client ohne Wallet: Clients können ohne Wallet konfiguriert werden, wenn TLS unter den folgenden Bedingungen verwendet wird:
  1. Einseitige TLS wird konfiguriert, wenn der Client kein eigenes Zertifikat besitzt, und
  2. das Root-Zertifikat, das das Datenbankserverzertifikat signiert hat, wird im Standardzertifikatspeicher des Systems gespeichert. Das Root-Zertifikat befindet sich wahrscheinlich bereits dort, wenn das Serverzertifikat von einer allgemeinen Certificate Authority signiert wird. Wenn es sich um ein selbstsigniertes Zertifikat handelt, muss das Root-Zertifikat im Standardzertifikatspeicher des Systems installiert werden, damit kein Client-Wallet verwendet wird.

Einzelheiten zur Konfiguration von TLS zwischen dem Datenbankclient und dem Datenbankserver, einschließlich der oben beschriebenen Optionen, finden Sie unter Transport Layer Security-Authentifizierung konfigurieren.

Informationen zur Verwendung selbstsignierter Zertifikate und zu zusätzlichen Wallet-bezogenen Aufgaben finden Sie in den Referenzinformationen zur orapki-Befehlszeilenschnittstelle (CLI) in der Database-Sicherheitsdokumentation. Weitere Informationen finden Sie unter Public Key Infrastructure-(PKI-)Elemente verwalten

Externe Identitätsprovider ändern

In diesem Thema werden die Schritte beschrieben, mit denen der externe Identitätsprovider in Base Database Service von zentral verwalteten Benutzern (CMU) in die OCI IAM-Authentifizierung und -Autorisierung geändert wird und umgekehrt.

Die OCI IAM-Authentifizierung und -Autorisierung für Benutzer ist standardmäßig nicht für neu bereitgestellte Datenbanken aktiviert. Eine weitere Option für die externe Authentifizierung ist die Verwendung von zentral verwalteten Benutzern mit Active Directory (CMU-AD). Nur ein externes Authentifizierungsschema kann jeweils aktiviert sein.

OCI IAM-Authentifizierung und -Autorisierung aktivieren

Führen Sie die folgenden Schritte aus, um die OCI IAM-Authentifizierung und -Autorisierung zu aktivieren.

  1. Aktivieren Sie die OCI IAM-Authentifizierung und -Autorisierung mit dem Befehl ALTER SYSTEM.
    ALTER SYSTEM SET IDENTITY_PROVIDER_TYPE=OCI_IAM SCOPE=BOTH;
  2. Prüfen Sie den Wert des Systemparameters IDENTITY_PROVIDER_TYPE.
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    NAME                   VALUE   
    ---------------------- ------- 
    identity_provider_type OCI_IAM 
  3. Prüfen Sie, ob der Parameter IDENTITY_PROVIDER_CONFIG festgelegt wurde.
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_config';
  4. Wenn der Parameter IDENTITY_PROVIDER_CONFIG festgelegt wurde, setzen Sie diesen Parameter zurück.
    ALTER SYSTEM RESET IDENTITY_PROVIDER_CONFIG SCOPE=BOTH;

OCI IAM-Authentifizierung und -Autorisierung deaktivieren

Führen Sie den folgenden Schritt aus, um die OCI IAM-Authentifizierung und -Autorisierung zu deaktivieren.

  1. Deaktivieren Sie die OCI IAM-Integration mit dem Befehl ALTER SYSTEM.
    ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

CMU-AD aktivieren

Führen Sie die folgenden Schritte aus, damit sich Active Directory-(AD-)Benutzer mit CMU bei der Datenbank anmelden können:

  1. Deaktivieren Sie die IAM-Integration wie unter OCI IAM-Authentifizierung und -Autorisierung deaktivieren beschrieben.
  2. Konfigurieren Sie CMU-AD wie unter Zentral verwaltete Benutzer mit Microsoft Active Directory konfigurieren beschrieben.

CMU-AD deaktivieren

Führen Sie den folgenden Schritt aus, um CMU-AD zu deaktivieren:

  1. Deaktivieren Sie CMU-AD mit dem Befehl ALTER SYSTEM.
    ALTER SYSTEM SET LDAP_DIRECTORY_ACCESS = 'NONE';

OCI IAM-Authentifizierung und -Autorisierung erneut aktivieren

Führen Sie die folgenden Schritte aus, um es IAM-Benutzern wieder zu ermöglichen, sich mit der OCI IAM-Authentifizierung und -Autorisierung mit der Datenbank zu verbinden:

  1. Deaktivieren Sie CMU-AD wie unter CMU-AD deaktivieren beschrieben.
  2. Aktivieren Sie die OCI IAM-Authentifizierung und -Autorisierung, wie unter OCI IAM-Authentifizierung und -Autorisierung aktivieren beschrieben.

IAM-Gruppen und -Policys für IAM-Benutzer erstellen

In diesem Thema werden die Schritte zum Schreiben von Policy-Anweisungen für eine IAM-Gruppe beschrieben, um den IAM-Benutzerzugriff auf OCI-Ressourcen, insbesondere auf Datenbankinstanzen, zu aktivieren.

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 die Datenbank zuzugreifen. Eine Policy ist nicht erforderlich, wenn Sie IAM-Datenbankkennwörter für den Zugriff auf die Datenbank verwenden.

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

  1. Führen Sie erforderliche OCI IAM-Vorbereitungen durch, 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 OCI-Ressourcen zu ermöglichen.

    1. Klicken Sie in der OCI-Konsole auf ID und Sicherheit und dann auf Policys.
    2. Um eine Policy zu schreiben, klicken Sie auf Policy erstellen, und geben Sie einen Namen und eine Beschreibung ein.
    3. Erstellen Sie mit Policy Builder eine Policy.

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

      Allow group DBUsers to use database-connections in tenancy

      Beispiel: So erstellen Sie eine Policy, die den Zugriff durch Mitglieder der Gruppe DBUsers auf die Datenbanken im Compartment testing_compartment beschränkt:

      allow group DBUsers to use database-connections 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 database-connections in compartment testing_compartment 
          where target.database.id = 'ocid1.database.oc1.iad.aabbcc' 
    4. Klicken Sie auf Create.

      Weitere Informationen zu Policys finden Sie unter Policys verwalten.

Hinweis:

Folgendes ist erforderlich, um Policys zur Verwendung mit IAM-Benutzern in der Datenbank in Base Database Service zu erstellen.

  • Policys können IAM-Benutzern den Zugriff auf Datenbankinstanzen im gesamten Mandanten oder in einem Compartment gestatten oder den Zugriff auf eine einzelne Datenbankinstanz begrenzen.

  • Sie können entweder mit dem Instanz-Principal oder mit dem Resource Principal Datenbanktoken abrufen, um eine Verbindung zwischen Ihrer Anwendung und einer Datenbankinstanz 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 OCI erstellen.

    Weitere Informationen finden Sie unter Dynamische Gruppen verwalten.

IAM-Benutzer hinzufügen

Um IAM-Benutzer für den Zugriff auf die Datenbank hinzuzufügen, ordnen Sie globale Datenbankbenutzer mit CREATE USER- oder ALTER USER-Anweisungen (mit der Klausel IDENTIFIED GLOBALLY AS) IAM-Gruppen oder -Benutzern zu.

Die Autorisierung von IAM-Benutzern für eine Datenbankinstanz erfolgt durch Zuordnung von globalen Datenbankbenutzern (Schemas) zu IAM-Benutzern (exklusive Zuordnung) oder IAM-Gruppen (gemeinsame Schemazuordnung).

So autorisieren Sie IAM-Benutzer für eine Datenbankinstanz:

Führen Sie die folgenden Schritte aus, um IAM-Benutzer für eine Datenbankinstanz zu autorisieren.

  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 Datenbankbenutzer (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, sales_domain, 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 die Datenbank die IAM-Authentifizierung aktiviert ist.

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

Führen Sie die folgenden Schritte aus, um einem globalen Oracle Database-Benutzer exklusiv einen lokalen IAM-Benutzer zuzuordnen.

  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 Datenbankbenutzer (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 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.

Das Erstellen globaler Rollen ist für einen IAM-Benutzer mit einer exklusiven IAM-Zuordnung zu einem Datenbankbenutzer (Schema) optional. Wenn die IAM-Zuordnung zu einem gemeinsamen Schema erfolgt, ist auch das Erstellen einer globalen Rolle optional. 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 voneinander 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 zusätzliche Rollen zu erteilen, müssen die globalen Datenbankrollen IAM-Gruppen zugeordnet werden.

Globale Datenbankrollen IAM-Gruppen zuordnen:

Führen Sie die folgenden Schritte aus, um die globalen Datenbankrollen IAM-Gruppen zuzuordnen.

  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 die Datenbankrollen 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 oben beschriebenen 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 der Datenbank mit einem Benutzernamen und Kennwort zu gestatten, müssen Sie ein IAM-Datenbankkennwort erstellen. Es gibt zwei Möglichkeiten, einen IAM-Benutzernamen und ein IAM-Datenbankkennwort zu verwenden.

  1. Der IAM-Benutzer kann beim Zugriff auf die Datenbank den IAM-Benutzernamen und das IAM-Datenbankkennwort eingeben. Standardmäßig befolgt der Datenbankclient das normale Kennwortverfahren zur Authentifizierung bei der Datenbank, und die Datenbank ruft die IAM-Datenbankkennwortverifizierung aus IAM ab.
  2. Der Datenbankclient kann so konfiguriert werden, dass ein IAM-Datenbanktoken mit dem IAM-Benutzernamen und dem IAM-Datenbankkennwort abgerufen wird. Der Datenbankclient sendet dieses Datenbanktoken für den Benutzerzugriff an die Datenbank.

Weitere Informationen zum Abrufen eines IAM-Datenbanktokens mit dem IAM-Benutzernamen und dem IAM-Datenbankkennwort finden Sie unter IAM für Oracle DBaaS konfigurieren .

Weitere Informationen zu IAM-Datenbankkennwörtern finden Sie unter Mit IAM-Datenbankbenutzernamen und -kennwörtern arbeiten in Benutzerzugangsdaten verwalten.

Verbindung zur Datenbank mit 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 OCI IAM-Zugangsdaten bei der Datenbankinstanz an oder greifen über ein OCI 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 der Datenbank anmelden.

Als OCI IAM-Benutzer können Sie mit einem Datenbankclient auf eine Datenbankinstanz zugreifen. Zur Verwendung von Clients mit OCI IAM-Benutzername und -Kennwort als Zugangsdaten und der Kennwortverifizierung, muss ein Datenbankclient der Version 12c oder höher verwendet werden.

Für die Verwendung des IAM-Datenbanktokens ist der Oracle Database-Client 19.16 und höher (nicht 21c) erforderlich. Bei einigen Oracle Database-Clients ab 21.5 sind die IAM-Datenbanktokenfunktionen begrenzt (nicht vollständig) verfügbar.

Hinweis:

Wenn sich Ihre Datenbankinstanz 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 Datenbankinstanz mit IAM herstellen

IAM-Benutzer können sich entweder mittels IAM-Datenbankkennwortverifizierung oder mit einem IAM-Token bei der Datenbankinstanz anmelden.

Die IAM-Datenbankkennwortverifizierung erfolgt ähnlich wie die Datenbankkennwortauthentifizierung. Der Unterschied ist, dass die Kennwortverifizierung (verschlüsselter Hash des Kennworts) nicht in der Datenbank gespeichert wird, sondern im OCI-IAM-Benutzerprofil.

Bei der zweiten Verbindungsmethode wird ein IAM-Token für die Datenbank verwendet. Ein tokenbasierter Zugriff ist für Cloud-Ressourcen wie Oracle-Datenbanken in Base Database Service 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. Eine TCPS-(TLS-)Verbindung ist erforderlich, wenn Token für den Datenbankzugriff verwendet werden.

Hinweis:

Sie können keine native Netzwerkverschlüsselung konfigurieren, wenn Sie ein IAM-Token übergeben. Nur Transport Layer Security (TLS) wird selbst unterstützt, keine native Netzwerkverschlüsselung oder native Netzwerkverschlüsselung mit TLS.

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 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 unterstützen. Die Verifizierungsverschlüsselung 11g wird von IAM nicht unterstützt. Es ist keine spezielle Client- oder Toolkonfiguration erforderlich, damit der IAM-Benutzer eine Verbindung zur Datenbank herstellen kann.

Der Datenbankclient kann auch ein Token direkt aus IAM mit dem IAM-Benutzernamen und dem IAM-Datenbankkennwort anfordern. Weitere Informationen zum Konfigurieren des Clients für das Abrufen eines Tokens finden Sie unter Clientverbindungen, die ein Token verwenden, das mit einem IAM-Benutzernamen und Datenbankkennwort angefordert wurde.

Clientverbindungen, die ein Token verwenden

Für den IAM-Tokenzugriff auf die Datenbank fordert die Clientanwendung oder das Clienttool von IAM ein Datenbanktoken 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 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, bei denen es sich um Zugangsdaten handelt, die den IAM-Benutzer darstellen, um die Authentifizierung zu aktivieren.
  • IAM-Benutzername und IAM-Datenbankkennwort, mit denen der Datenbankclient ein IAM-Datenbanktoken direkt abrufen kann, wenn dies konfiguriert ist.
  • 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 OCI-Services authentifizieren kann.
  • Mit einem IAM-Benutzernamen und einem IAM-Datenbankkennwort (das nur vom Datenbankclient angefordert werden 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 IAM-Datenbankverifizierungszugriff, der für Clientverbindungen mit IAM-Datenbankkennwortverifizierung beschrieben ist, es sei denn, der Datenbankclient ist so konfiguriert, dass ein Datenbanktoken aus IAM mit dem IAM-Benutzernamen und IAM-Datenbankkennwort abgerufen wird. Die Anweisungen in diesem Thema 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 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 Datenbank 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 sind insgesamt maximal 128 Byte zulässig.

Das folgende Beispiel zeigt die Anmeldung des IAM-Benutzers peter_fitch bei einer Datenbankinstanz.

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

Führen Sie die folgenden Schritte aus, um eine Clientverbindung für SQL*Plus zu 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 dem Datenbankadministrator nach, ob Sie über eine Policy verfügen, die Ihnen Zugriff auf die Datenbank im Compartment oder in Ihrem Mandanten gestattet, 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. Weitere Informationen zur Installation und Konfiguration der OCI-CLI finden Sie unter Schnellstart.
  4. 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:
      • Ein db-token mit einem API-key über die OCI-Befehlszeilenschnittstelle (CLI) 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 in der OCI-CLI den folgenden Befehl aus:
        oci iam db-token get
      • Instanztoken über die OCI-CLI abrufen:
        oci iam db-token get --auth instance_principal

    Weitere Informationen finden Sie unter Erforderliche Schlüssel und OCIDs.

  5. Diese Konfiguration funktioniert nur mit dem Oracle Database-Client 19c. Stellen Sie sicher, dass Sie die neuesten Releaseupdates für diesen Client verwenden.

    Hinweis:

    Oracle Database-Clientrelease 21c bietet eingeschränkte IAM-Tokenfeatures.
  6. Befolgen Sie den vorhandenen Prozess zum Herunterladen des Wallets aus der Datenbank. Befolgen Sie dann die Anweisungen, 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 durch Ausführen des folgenden Befehls zum Starten von SQL*Plus bei der Datenbankinstanz anmelden. 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 das db-token ab, signiert es mit dem Private Key und sendet das Token dann an die Datenbank. 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, es sei denn, ein anderer Parameter wird angegeben: PASSWORD_AUTH = OCI_TOKEN. Dadurch wird der Datenbankclient angewiesen, das Token mit dem IAM-Benutzernamen und dem IAM-Datenbankkennwort aus IAM abzurufen. Zusätzlich zu PASSWORD_AUTH müssen Sie auch OCI_IAM_URL, OCI_TENANCY und optional OCI_COMPARTMENT und OCI_DATABASE festlegen.

Instanz-Principal für Datenbankzugriff mit IAM-Authentifizierung verwenden

Nachdem der ADMIN-Benutzer OCI IAM für die Datenbank aktiviert hat, kann eine Anwendung mit einem Instanz-Principal und einem OCI-IAM-Datenbanktoken auf die Datenbank zugreifen.

Weitere Informationen finden Sie unter Auf die Oracle Cloud Infrastructure-API mithilfe von Instanz-Principals 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 Datenbankinstanz an.
  2. Erteilen Sie dem IAM-Benutzer die Berechtigung, über den Proxy eine Verbindung zum lokalen Datenbankbenutzeraccount herzustellen. 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 exklusiv 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 bei der Datenbankinstanz als ein Benutzer mit den Systemberechtigungen CREATE USER und ALTER USER 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.
    • Bei der Kennwortauthentifizierung wird davon ausgegangen, dass sich der IAM-Benutzer in der Standarddomain befindet:
      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_PROXY"
      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"
    • Für die Tokenauthentifizierung für einen Benutzer, der sich in einer Nicht-Standarddomain befindet, sales_domain:
      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_PROXY"
      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 OCI-IAM-Benutzer eine Verbindung von einer Datenbankinstanz zu einer anderen herstellen.

Mit einem Datenbanklink für einen angemeldeten Benutzer oder einem festen Benutzerdatenbanklink können Sie als OCI-IAM-Benutzer eine Verbindung zu einer Datenbank herstellen.

Hinweis:

Der aktuelle Benutzerdatenbanklink wird für die Verbindung als OCI IAM-Benutzer zu einer Datenbank in Base Database Service nicht unterstützt.
  • Datenbanklink für einen angemeldeten Benutzer: Bei einem Datenbanklink für einen angemeldeten Benutzer 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.

IAM-Authentifizierung deaktivieren

Sie können den IAM-Benutzerzugriff auf Ihrer Datenbankinstanz 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 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.