IBM Cloud Docs
Benutzer, Rollen und Berechtigungen verwalten

Benutzer, Rollen und Berechtigungen verwalten

PostgreSQL verwendet ein Rollensystem, um Datenbankberechtigungen zu verwalten. Rollen werden verwendet, um einem einzelnen Benutzer oder einer Gruppe von Benutzern eine Gruppe von Berechtigungen zu erteilen. Bestimmen Sie Rollen, Gruppen und Berechtigungen in Ihrer Implementierung mit dem psql-Befehl \du.

Wenn Sie eine neue Einrichtung in IBM Cloud bereitstellen, erhalten Sie automatisch einen admin-Benutzer für den Zugriff und die Verwaltung von PostgreSQL.

Der Benutzer admin

Wenn Sie eine neue Einrichtung in IBM Cloud bereitstellen, erhalten Sie automatisch einen admin-Benutzer für den Zugriff und die Verwaltung von PostgreSQL. Sobald Sie das Administratorkennwort festgelegt haben, können Sie sich damit mit Ihrer Einrichtung verbinden.

Wenn admin eine Ressource in einer Datenbank erstellt, z. B. eine Tabelle, ist admin Eigentümer dieses Objekts. Ressourcen, die von admin erstellt werden, sind für andere Benutzer nicht zugänglich, es sei denn, Sie erteilen ihnen ausdrücklich die entsprechenden Rechte.

Der größte Unterschied zwischen dem Benutzer admin und allen anderen Benutzern, die Sie zu Ihrer Bereitstellung hinzufügen, ist die pg_monitor und pg_signal_backend rollen. Die Rolle pg_monitor stellt eine Gruppe von Berechtigungen bereit, die den Benutzer mit Administratorberechtigung für die Überwachung des Datenbankservers qualifiziert. Die Rolle pg_signal_backend ermöglicht es dem Administratorbenutzer, Signale zu senden, um Abfragen und Verbindungen abzubrechen, die von anderen Benutzern eingeleitet wurden. Er kann keine Signale an Prozesse senden, deren Eigner Superuser sind.

Sie können auch den Benutzer admin verwenden, um diese beiden Rollen anderen Benutzern in Ihrer Einrichtung zuzuweisen.

Um anderen Datenbankbenutzern die Möglichkeit zu geben, Abfragen abzubrechen, gewähren Sie die Rolle pg_signal_backend des Benutzers admin. Verwenden Sie einen Befehl wie den folgenden:

GRANT pg_signal_backend TO joe;

Damit der Benutzer joe Back-Ends abbrechen kann, erteilen Sie allen Benutzern mit der Rolle ibm-cloud-base-user die Berechtigung pg_signal_backend mit einem Befehl wie dem folgenden:

GRANT pg_signal_backend TO "ibm-cloud-base-user";

Diese Berechtigung ermöglicht es dem Benutzer oder den Benutzern, alle Verbindungen zur Datenbank zu beenden.

Verwenden Sie zum Einrichten eines bestimmten Überwachungsbenutzers mary einen Befehl wie den folgenden:

GRANT pg_monitor TO mary;

Erteilen Sie allen Benutzern mit der Rolle ibm-cloud-base-user mit einem Befehl wie dem folgenden pg_signal_backend :

GRANT pg_monitor TO "ibm-cloud-base-user";

Festlegen des Admin-Passworts in der Benutzeroberfläche

Legen Sie Ihr Admin-Passwort über die Benutzeroberfläche fest, indem Sie Ihre Instanz aus der Ressourcenliste im IBM Cloud Dashboard auswählen. Wählen Sie anschließend Einstellungen aus. Geben Sie dann im Abschnitt Passwort für Datenbankadministrator ändern ein neues Passwort ein und klicken Sie auf Passwort ändern.

Einstellen des Admin-Passworts in der CLI

Verwenden Sie den Befehl cdb user-password aus dem Cloud Databases-CLI-Plug-in, um das admin-Kennwort festzulegen.

Um beispielsweise das Administratorkennwort für eine Bereitstellung namens example-deployment festzulegen, verwenden Sie den folgenden Befehl:

ibmcloud cdb user-password example-deployment admin <NEW_PASSWORD>

Festlegen des Admin-Kennworts in der API

Der Basisendpunkt, der im Abschnitt Bereitstellungsdetails des Übersichtsfensters Ihres Dienstes angezeigt wird, bietet die Basis URL für den Zugriff auf diese Bereitstellung über die API. Verwenden Sie ihn zusammen mit dem Endpunkt Set specified user's password, um das Administratorkennwort festzulegen.

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

Serviceberechtigungsnachweis-Benutzer

Benutzer, die Sie über die Anzeige Serviceberechtigungsnachweise erstellen, sind Mitglieder von ibm-cloud-base-user. Sie können sich anmelden, Benutzer erstellen und Datenbanken erstellen.

Wenn ein Benutzer in einer Gruppe eine Ressource in einer Datenbank erstellt, wie z. B. eine Tabelle, haben alle Benutzer, die sich in derselben Gruppe befinden, Zugriff auf diese Ressource. Ressourcen, die von einem beliebigen Benutzer in ibm-cloud-base-user erstellt werden, sind für die anderen Benutzer in ibm-cloud-base-user, einschließlich des Administratorbenutzers, zugänglich.

Über die Befehlszeilenschnittstelle erstellte Benutzer

Benutzer, die Sie über das Cloud Databases CLI-Plug-in erstellen, sind auch Mitglieder von ibm-cloud-base-user. Sie können sich anmelden, Benutzer erstellen und Datenbanken erstellen.

Wenn ein Benutzer eine Ressource in einer Datenbank erstellt, wie z. B. eine Tabelle, haben alle Benutzer, die sich in derselben Gruppe befinden, Zugriff auf diese Ressource. Ressourcen, die von einem der Benutzer in ibm-cloud-base-user erstellt wurden, sind für andere Benutzer in ibm-cloud-base-user zugänglich, einschließlich des Benutzers admin.

Benutzer, die direkt über die API und CLI erstellt werden, werden nicht unter Serviceberechtigungsnachweise angezeigt, aber Sie können sie hinzufügen, wenn Sie möchten.

Über die API erstellte Benutzer

Benutzer, die Sie über Cloud Databases-API erstellen, sind auch Mitglieder von ibm-cloud-base-user. Sie können sich anmelden, Benutzer erstellen und Datenbanken erstellen.

Wenn ein Benutzer eine Ressource in einer Datenbank erstellt, wie z. B. eine Tabelle, haben alle Benutzer, die sich in derselben Gruppe befinden, Zugriff auf diese Ressource. Ressourcen, die von einem beliebigen Benutzer in ibm-cloud-base-user erstellt werden, sind für die anderen Benutzer in ibm-cloud-base-user, einschließlich des Administratorbenutzers, zugänglich.

Benutzer, die direkt über die API und CLI erstellt werden, werden nicht unter Serviceberechtigungsnachweise angezeigt, aber Sie können sie hinzufügen, wenn Sie möchten.

Benutzer mit Leseberechtigung

ibm-cloud-base-user-ro verwaltet die Berechtigungen für Benutzer, die für den Zugriff auf Nur-Lese-Replikate erstellt werden. Weitere Informationen finden Sie unter Konfiguration von schreibgeschützten Repliken.

Der Benutzer repl

Der Benutzer repl verfügt über Replikationsberechtigungen und wird verwendet, wenn Sie das Plug-in wal2json für Ihre Bereitstellung aktivieren. Legen Sie bei der Aktivierung von wal2json das Kennwort für den Benutzer repl fest, damit das Plug-in wal2json es verwenden kann.

Weitere ibm-Benutzer

Wenn Sie den Befehl \du mit Ihrem admin-Konto ausführen, werden Sie feststellen, dass es Benutzer mit den Namen ibm, ibm-cloud-base-user, ibm-replication und ibm-rewind gibt.

ibm-cloud-base-user wird als Vorlage für die Verwaltung von Gruppenrollen für andere Benutzer verwendet. Dieser Benutzer wird zum Verwalten der über die CLI und die API erstellten Benutzer und zur Ermöglichung der Integration mit der Benutzererstellung über Serviceberechtigungsnachweise in IBM Cloud verwendet. Ein Benutzer, der Member von ibm-cloud-base-user ist, übernimmt die Erstellungsrolle und erstellt Datenbankattribute aus ibm-cloud-base-user. Der ibm-cloud-base-user-Benutzer kann sich nicht anmelden.

Das Konto ibm ist der einzige Superuser für Ihre Bereitstellung. Ein Superuser-Konto steht Ihnen bei uns nicht zur Verfügung. Dieser Benutzer ist ein interner Verwaltungsaccount, der die Stabilität Ihrer Implementierung verwaltet.

Mit psql erstellte Benutzer

Sie können die Erstellung von Benutzern über IBM Cloud vollständig umgehen und Benutzer direkt in PostgreSQL mit psql erstellen. Dies ermöglicht die Nutzung der PostgreSQL's Rollen- und Benutzerverwaltung. Für die in psql erstellten Benutzer/Rollen müssen alle Berechtigungen manuell festgelegt werden, ebenso wie die Berechtigungen für die Objekte, die sie erstellen.

Benutzer, die direkt in PostgreSQL erstellt werden, werden nicht unter Serviceberechtigungsnachweise angezeigt, aber Sie können hinzufügen, wenn Sie möchten.

Beachten Sie, dass diese Benutzer nicht in IAM-Steuerelemente integriert sind, auch wenn sie zu Serviceberechtigungsnachweise hinzugefügt wurden.

Zusätzliche Benutzer und Verbindungszeichenfolgen

Der Zugriff auf Ihre Databases for PostgreSQL Bereitstellung ist nicht auf den Benutzer admin beschränkt. Fügen Sie Benutzer in der Benutzeroberfläche unter Service-Anmeldeinformationen, mit dem Cloud Databases CLI-Plug-in oder der Cloud Databases API hinzu.

Alle Benutzer in Ihrer Bereitstellung können die Verbindungszeichenfolgen verwenden, einschließlich Verbindungszeichenfolgen für öffentliche oder private Endpunkte.

Wenn Sie einen Benutzer erstellen, werden ihm bestimmte Datenbankrollen und -berechtigungen zugeordnet. Zu diesen Berechtigungen gehören die Möglichkeit, sich anzumelden, Datenbanken zu erstellen und andere Benutzer zu erstellen.

Benutzer in der Benutzeroberfläche anlegen

  1. Wechseln Sie zum Service-Dashboard für Ihren Service.
  2. Klicken Sie auf Dienstanmeldeinformationen, um Dienstanmeldeinformationen zu öffnen.
  3. Klicken Sie auf Neuer Berechtigungsnachweis.
  4. Wählen Sie einen beschreibenden Namen für Ihren neuen Berechtigungsnachweis aus.
  5. Optional Geben Sie an, ob die neuen Anmeldedaten einen öffentlichen oder privaten Endpunkt verwenden sollen. Verwenden Sie entweder { "service-endpoints": "public" } / { "service-endpoints": "private" } im Feld Inline-Konfigurationsparameter hinzufügen, um Verbindungszeichenfolgen unter Verwendung des angegebenen Endpunkts zu erzeugen. Die Verwendung des Endpunkts wird nicht erzwungen. Es wird nur gesteuert, welche Hostnamen in den Verbindungszeichenfolgen enthalten sind. Private Endpunkte werden standardmäßig erzeugt.
  6. Klicken Sie auf Hinzufügen, um die neuen Berechtigungsnachweise bereitzustellen. Ein Benutzername und Kennwort sowie ein zugehöriger Datenbankbenutzer in der PostgreSQL-Datenbank werden automatisch generiert.

Die neuen Berechtigungsnachweise werden in der Tabelle angezeigt und die Verbindungszeichenfolgen sind als JSON in einem Click-to-Copy-Feld unter Berechtigungsnachweise anzeigen verfügbar.

Anlegen von Benutzern über die CLI

Wenn Sie Ihren Service über die IBM Cloud-CLI und das Cloud Database-Plug-in verwalten, können Sie mit cdb user-create einen neuen Benutzer erstellen. Um zum Beispiel einen neuen Benutzer für eine "Beispiel-Bereitstellung" zu erstellen, verwenden Sie den folgenden Befehl:

ibmcloud cdb user-create example-deployment <NEW_USER_NAME> <NEW_PASSWORD>

Nachdem die Task abgeschlossen ist, können Sie die Verbindungszeichenfolgen des neuen Benutzers mit dem Befehl ibmcloud cdb deployment-connections abrufen.

Benutzer über die API erstellen

Der Basisendpunkt, der in der Anzeige Übersicht unter Bereitstellungsdetails angezeigt wird, stellt die Basis-URL für den Zugriff auf diese Bereitstellung über die API bereit. Verwenden Sie zum Erstellen und Verwalten von Benutzern die Basis-URL mit dem Endpunkt /users.

curl -X POST 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/users' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"username":"jane_smith", "password":"newsupersecurepassword"}'

Nach Beendigung der Aufgabe rufen Sie die Verbindungszeichenfolgen des neuen Benutzers vom Endpunkt /users/{userid}/connections ab.

Benutzer zu Serviceberechtigungsnachweise hinzufügen

Beim Erstellen eines neuen Benutzers über die CLI oder API werden die Verbindungszeichenfolgen dieses Benutzers nicht automatisch in Serviceberechtigungsnachweise eingetragen. Um sie hinzuzufügen, erstellen Sie einen neuen Berechtigungsnachweis mit den vorhandenen Benutzerinformationen.

Geben Sie den Benutzernamen und das Kennwort im JSON-Feld Integrierte Konfigurationsparameter hinzufügen ein oder geben Sie eine Datei an, in der die JSON-Informationen gespeichert sind. Wenn Sie beispielsweise {"existing_credentials":{"username":"Robert","password":"supersecure"}} in das Feld eingeben, werden Serviceberechtigungsnachweise generiert, wobei der Benutzername "Robert" und das Kennwort "supersecure" in Verbindungszeichenfolgen eingetragen werden.

Bei der Generierung von Berechtigungsnachweisen von einem vorhandenen Benutzer erfolgt keine Überprüfung oder Erstellung dieses Benutzers.