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
- Navigieren Sie zum Servicedashboard für Ihren Service.
- Klicken Sie auf Serviceberechtigungsnachweise, um die Anzeige Serviceberechtigungsnachweise zu öffnen.
- Klicken Sie auf Neuer Berechtigungsnachweis.
- Wählen Sie einen beschreibenden Namen für Ihren neuen Berechtigungsnachweis aus.
- (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. - 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.