IBM Cloud Docs
Benutzer, Rollen und Berechtigungen verwalten

Benutzer, Rollen und Berechtigungen verwalten

MySQL 5.7 verwendet ein System von Rollen, um Datenbankberechtigungen zu verwalten. Erstellen Sie Benutzer über die Benutzerschnittstelle und über die MySQL Shell. Benutzer, die über die Benutzeroberfläche erstellt werden, haben fast die gleichen Rechte wie admin, können aber keine anderen Benutzer erstellen. Da admin sowohl über die Optionen CREATE USER als auch GRANT verfügt, kann er einen Benutzer erstellen und ihm alle Berechtigungen geben, die er hat, einschließlich der Berechtigung, neue Benutzer zu erstellen.

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;
+-----------------------------+
| GRANTEE                     |
+-----------------------------+
| 'ibm'@'localhost'           |
| 'mysql.session'@'localhost' |
| 'mysql.sys'@'localhost'     |
| 'ibm-backup'@'localhost'    |
| 'admin'@'%'                 |
| 'ibm-replication'@'%'       |
| 'ibm-monitor'@'%'           |
+-----------------------------+
+-----------------+
| user            |
+-----------------+
| admin           |
| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |
| mysql.session   |
| mysql.sys       |
+-----------------+

Die folgenden Benutzer werden von IBM Cloud verwaltet und sollten nicht geändert oder gelöscht werden:


| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |

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

Fügen Sie Benutzer in der Benutzeroberfläche unter Dienstanmeldeinformationen, mit dem Cloud Databases CLI-Plug-in oder der Cloud Databases API hinzu.

Befehle für die Benutzerverwaltung

Aus Sicherheitsgründen wird empfohlen, keine DML-Abfragen (Data Manipulation Language) in der mysql.user-Tabelle auszuführen. Zum Schutz vor Änderungen der mysql.user-Tabelle sollten Sie DML-Abfragen verwenden, um Benutzer zu verwalten.

Verwalten Sie Benutzer mit Befehlen wie CREATE USER, ALTER USER, RENAME USER und DROP USER.

Eine Liste der Benutzer mit ihren Hostinformationen, jedoch ohne Authentifizierungsinformationen und Kennworthashwerte, kann mit dem folgenden Befehl extrahiert werden:

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;

Der Benutzer admin

Wenn Sie eine neue Bereitstellung in IBM Cloud einrichten, erhalten Sie automatisch einen Benutzer mit Administratorberechtigung für den Zugriff auf und die Verwaltung von MySQL. Nachdem Sie das Administratorkennwort festgelegt haben, verwenden Sie es, um eine Verbindung zu Ihrer Implementierung herzustellen.

Wenn admin eine Ressource in einer Datenbank erstellt, z. B. eine Tabelle, ist admin Eigentümer dieses Objekts. Benutzer, die über die Benutzeroberfläche erstellt werden, haben die Berechtigung *.*. Das bedeutet, dass jeder neu erstellte Benutzer automatisch alle Datenbanken einsehen kann. Verwenden Sie MySQL sh, oder ändern Sie die Berechtigungen eines von der Benutzeroberfläche erstellten Benutzers, um den Zugriff zu beschränken. Um Berechtigungen zu begrenzen, entfernen Sie globale Berechtigungen, sofern aktiviert, und erteilen Sie Berechtigungen für eine Datenbank oder Datenbankgruppe, auf die ein bestimmter Benutzer Zugriff haben soll.

Legen Sie das Administratorkennwort fest, bevor Sie es für die Verbindung verwenden.

Festlegen des Admin-Passworts in der Benutzeroberfläche

Legen Sie Ihr Admin-Passwort über die Benutzeroberfläche fest, indem Sie Ihre Instanz in der Ressourcenliste im IBM Cloud Dashboard auswählen. Wählen Sie anschließend Einstellungen aus. Wählen Sie anschließend Datenbank-Administrator-Passwort ändern.

Einstellen des Admin-Passworts in der CLI

Verwenden Sie den Befehl cdb user-password aus dem Plug-in IBM Cloud der Befehlszeilenschnittstelle Cloud Databases, um das Administratorkennwort 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 <newpassword>

Festlegen des Admin-Kennworts in der API

Der Foundation-Endpunkt, der im Abschnitt Einsatzdetails des Übersichtsfensters Ihres Dienstes angezeigt wird, bietet die Basis URL für den Zugriff auf diesen Einsatz ü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"}` \

Weitere ibm-Benutzer

Das ibm- und das ibm-replication-Konto sind die einzigen Superuser in Ihrer Bereitstellung. Ein Superuser-Konto steht Ihnen nicht zur Verfügung. Diese Benutzer sind interne Verwaltungskonten, die die Replikation, Metriken und andere Funktionen verwalten, mit denen die Stabilität Ihrer Bereitstellung sichergestellt wird.

Mit mysql erstellte Benutzer

Sie können die Erstellung von Benutzern über IBM Cloud vollständig umgehen und Benutzer direkt in MySQL mit mysql erstellen. Auf diese Weise können Sie die native Rollen- und Benutzerverwaltung von MySQL nutzen. Für die in mysql 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 MySQL erstellt werden, werden nicht unter Serviceberechtigungsnachweise angezeigt, aber Sie können diese 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.

Benutzerzugriff auf Tabellen

Sie können zwar mysql database nicht löschen, aber Benutzer können Tabellen löschen, einschließlich der mysql.users-Tabelle, die interne Benutzer enthält. Clients sollten keine Tabelle löschen, die zu mysql database gehört, da diese Aktion zu einer fehlerhaften Formation führen kann, die nur mit einer Point-in-time-Recovery (PITR) aufgelöst werden kann.

IBM Cloud warnt nicht, wenn die Formation aufgrund einer von einem Client gelöschten Systemtabelle unterbrochen wird.

Weitere Benutzer und Verbindungszeichenfolgen

Der Zugriff auf Ihre Databases for MySQL-Bereitstellung ist nicht auf den Benutzer mit Administratorberechtigung beschränkt. Sie können Benutzer über die Anzeige Serviceberechtigungsnachweise, die IBM-CLI oder über die IBM Cloud Databases-API erstellen.

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. Weitere Informationen finden Sie auf der Seite Benutzer, Rollen und Berechtigungen verwalten.

Benutzer unter Serviceberechtigungsnachweise erstellen

  1. Navigieren Sie zum Servicedashboard für Ihren Service.
  2. Klicken Sie auf Serviceberechtigungsnachweise, um die Anzeige Serviceberechtigungsnachweise 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 Berechtigungsnachweise einen öffentlichen oder einen privaten Endpunkt verwenden sollen. Verwenden Sie entweder { "service-endpoints": "public" } oder { "service-endpoints": "private" } im Feld Integrierte Konfigurationsparameter hinzufügen, um Verbindungszeichenfolgen unter Verwendung des angegebenen Endpunkts zu generieren. Die Verwendung des Endpunkts wird nicht umgesetzt. Mit der Angabe wird lediglich gesteuert, welche Hostnamen die Verbindungszeichenfolgen enthalten. Standardmäßig werden öffentliche Endpunkte generiert.
  6. Klicken Sie auf Hinzufügen, um die neuen Berechtigungsnachweise bereitzustellen. Ein Benutzername und Kennwort sowie ein zugehöriger Datenbankbenutzer in der MySQL-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.

Benutzer über die Befehlszeile erstellen

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 beispielsweise einen neuen Benutzer für die Bereitstellung 'example-deployment' zu erstellen, verwenden Sie den folgenden Befehl.

ibmcloud cdb user-create example-deployment <newusername> <newpassword>

Sobald 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"}'

Nachdem die Task abgeschlossen ist, können Sie die Verbindungszeichenfolgen des neuen Benutzers über den Endpunkt /users/{userid}/connections abrufen.

Benutzer zu Serviceberechtigungsnachweise hinzufügen

Beim Erstellen eines neuen Benutzers über die Befehlszeilenschnittstelle werden die Verbindungszeichenfolgen dieses Benutzers nicht automatisch in Serviceberechtigungsnachweise eingetragen. Wenn Sie diese dort hinzufügen möchten, können Sie einen neuen Berechtigungsnachweis mit den vorhandenen Benutzerinformationen erstellen.

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.