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).
Verwandte Themen
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.
- Erstellen Sie ein Servicegateway in dem VCN, in dem sich Ihre Datenbankressourcen befinden, indem Sie die Anweisungen unter Servicegateway erstellen befolgen.
- 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:
- Gehen Sie zur Seite Subnetzdetails für das Subnetz.
- Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzes, um die Seite Routentabellendetails anzuzeigen.
- 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.
- Kehren Sie zur Seite Subnetzdetails für das Subnetz zurück.
- Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
- Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
- 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
- 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.
- Einseitige TLS wird konfiguriert, wenn der Client kein eigenes Zertifikat besitzt, und
- 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.
- Aktivieren Sie die OCI IAM-Authentifizierung und -Autorisierung mit dem Befehl
ALTER SYSTEM
.ALTER SYSTEM SET IDENTITY_PROVIDER_TYPE=OCI_IAM SCOPE=BOTH;
- 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
- Prüfen Sie, ob der Parameter
IDENTITY_PROVIDER_CONFIG
festgelegt wurde.SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_config';
- 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.
- 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:
- Deaktivieren Sie die IAM-Integration wie unter OCI IAM-Authentifizierung und -Autorisierung deaktivieren beschrieben.
- 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:
- 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:
- Deaktivieren Sie CMU-AD wie unter CMU-AD deaktivieren beschrieben.
- 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:
-
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.
-
Schreiben Sie Policy-Anweisungen, um den Zugriff auf OCI-Ressourcen zu ermöglichen.
- Klicken Sie in der OCI-Konsole auf ID und Sicherheit und dann auf Policys.
- Um eine Policy zu schreiben, klicken Sie auf Policy erstellen, und geben Sie einen Namen und eine Beschreibung ein.
-
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 Compartmenttesting_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'
- 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.
- 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
undALTER USER
, die Sie für diese Schritte benötigen). -
Erstellen Sie eine Zuordnung zwischen dem Datenbankbenutzer (Schema) mit
CREATE USER
- oderALTER USER
-Anweisungen und der KlauselIDENTIFIED 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 namenssales_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 indb_sales_group
mit seinen IAM-Zugangsdaten bei der Datenbank anmelden (über die gemeinsame Zuordnung des globalen Benutzerssales_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';
- 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 nichtIDENTIFIED 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.
- 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
undALTER USER
, die Sie für diese Schritte benötigen). -
Erstellen Sie eine Zuordnung zwischen dem Datenbankbenutzer (Schema) mit
CREATE USER
- oderALTER USER
-Anweisungen und der KlauselIDENTIFIED 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.
- 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
undALTER USER
, die Sie für diese Schritte benötigen). -
Legen Sie die Datenbankautorisierung für die Datenbankrollen mit der Anweisung
CREATE ROLE
oderALTER ROLE
fest. Fügen Sie die KlauselIDENTIFIED 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 namensexport_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 dersales_domain
-Domain werden mit der globalen Datenbankrolleexport_role
autorisiert, wenn sie sich bei der Datenbank anmelden. - 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;
- 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.
- 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.
- 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 BerechtigungRESTRICTED 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.
- Stellen Sie sicher, dass Sie über einen IAM-Benutzeraccount verfügen.
- 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.
- 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.
- Richten Sie im Rahmen der OCI-CLI-Konfiguration einen API-Schlüssel ein, und wählen Sie Standardwerte aus.
- Richten Sie den API-Schlüsselzugriff für den IAM-Benutzer ein.
- Rufen Sie das
db-token
ab. Beispiel:- Ein
db-token
mit einemAPI-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
- Ein
Weitere Informationen finden Sie unter Erforderliche Schlüssel und OCIDs.
- 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. - 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.
- Vergewissern Sie sich, dass der DN-Abgleich aktiviert ist, indem Sie in
sqlnet.ora
nachSSL_SERVER_DN_MATCH=ON
suchen. - Konfigurieren Sie den Datenbankclient für die Verwendung des IAM-Tokens, indem Sie
TOKEN_AUTH=OCI_TOKEN
der Dateisqlnet.ora
hinzufügen. Da Sie die Standardspeicherorte für die Datenbanktokendatei verwenden, müssen Sie keinen Speicherort für das Token angeben.
Die WerteTOKEN_AUTH
undTOKEN_LOCATION
in dentnsnames.ora
-Verbindungszeichenfolgen haben Vorrang vor densqlnet.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)))
- Vergewissern Sie sich, dass der DN-Abgleich aktiviert ist, indem Sie in
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.
- Melden Sie sich als Benutzer mit den Systemberechtigungen
ALTER USER
bei der Datenbankinstanz an. - 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, undpeterfitch_schema
ist der globale Datenbankbenutzer, der exklusiv dem Benutzerpeterfitch
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.
- Melden Sie sich bei der Datenbankinstanz als ein Benutzer mit den Systemberechtigungen
CREATE USER
undALTER USER
an. - Stellen Sie eine Verbindung als IAM-Benutzer her, und führen Sie die Befehle
SHOW USER
undSELECT SYS_CONTEXT
aus. Angenommen, Sie möchten die Proxyauthentifizierung des IAM-Benutzerspeterfitch
prüfen, wenn dieser über einen Proxy auf den Datenbankbenutzerhrapp
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"
- Bei der Kennwortauthentifizierung wird davon ausgegangen, dass sich der IAM-Benutzer in der Standarddomain befindet:
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.