Benutzer und Rollen verwalten
Databases for MongoDB Bereitstellungen werden mit aktivierter Authentifizierung geliefert und verwenden die MongoDB's Rollenbasierte Zugriffskontrolle.
Fügen Sie Benutzer in der Benutzerschnittstelle in _Serviceberechtigungsnachweise_mit dem Cloud Databases-CLI-Plug-in oder mit der APICloud Databases hinzu.
Benutzer mit Administratorberechtigung
Wenn Sie eine Bereitstellung von Databases for MongoDB bereitstellen, wird automatisch ein admin
-Benutzer erstellt.
Legen Sie das Administratorkennwort fest, bevor Sie es für die Verbindung verwenden.
Der Benutzer admin
hat die folgenden Berechtigungen:
-
userAdminAnyDatabase
verfügt über dieselben Berechtigungen wieuserAdmin
für alle Datenbanken außerlocal
undconfig
.userAdminAnyDatabase
stellt dem Benutzer mit Administratorberechtigung die Verwaltungsberechtigung zur Verfügung. Die Rolle ermöglicht die AktionlistDatabases
für den gesamten Cluster. MituserAdminAnyDatabase
erstellen und erteilen Sie Rollen für jeden anderen Benutzer in Ihrer Implementierung, einschließlich aller integrierten MongoDB-Rollen. Um beispielsweise Ihre Implementierung zu überwachen, verwenden Sieadmin
, um sich bei der Mongo-Shell anzumelden und die RolleclusterMonitor
einem beliebigen Benutzer (einschließlich sich selbst) zuzuweisen. Verwenden Sie einen Befehl wie den folgenden:db.grantRolesToUser( "admin", [ { role: "clusterMonitor", db: "admin" } ] )
-
readWriteAnyDatabase
verfügt über dieselben Berechtigungen wiereadWrite
für alle Datenbanken außerlocal
undconfig
. -
dbAdminAnyDatabase
verfügt über dieselben Berechtigungen wiedbAdmin
für alle Datenbanken außerlocal
undconfig
.
Festlegen des Admin-Passworts in der Benutzeroberfläche
Legen Sie Ihr Admin-Passwort über die Benutzeroberfläche fest, indem Sie Ihre Instanz aus der IBM Cloud Ressourcenliste auswählen. Wählen Sie anschließend Einstellungen aus. Wählen Sie als Nächstes Datenbankadministratorkennwort ändernaus.
Festlegen 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 Ihre Bereitstellung festzulegen, verwenden Sie den folgenden Befehl:
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
Festlegen des Admin-Kennworts in der API
Der Foundation-Endpunkt, der im Abschnitt Einsatzdetails des Übersichtsfensters Ihres Dienstes angezeigt wird, stellt die Basis-URL für den Zugriff auf diesen Einsatz über die API bereit. 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"}` \
Verwaltung von Benutzern und Rollen über die Benutzeroberfläche
- Wechseln Sie zum Service-Dashboard für Ihren Service.
- Klicken Sie auf Serviceberechtigungsnachweise, um den Abschnitt 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 für einen öffentlichen oder privaten Endpunkt verwendet werden. Verwenden Sie wahlweise
{ "service-endpoints": "public" }
/{ "service-endpoints": "private" }
im Feld Integrierte Konfigurationsparameter hinzufügen, um Verbindungszeichenfolgen zu generieren, die den angegebenen Endpunkt verwenden. 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 Anmeldedaten bereitzustellen. Daraufhin werden automatisch ein Benutzername mit dem zugehörigen Kennwort sowie ein zugeordneter MongoDB-Benutzer 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.
Wenn Sie einen Benutzer über die CLI oder API erstellen, 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 in das JSON-Feld unter Integrierte Konfigurationsparameter hinzufügen ein. Zum Beispiel {"existing_credentials":{"username":"Robert","password":"supersecure"}}
.
Sie geben den Benutzernamen und das Kennwort ein, und Service Credentials generiert die Verbindungszeichenfolgen mit den eingegebenen Anmeldeinformationen.
Bei der Generierung von Berechtigungsnachweisen von einem vorhandenen Benutzer erfolgt keine Überprüfung oder Erstellung dieses Benutzers.
Benutzer, die Sie über _Serviceberechtigungsnachweise_erstellen, erhalten die Rollen readWriteAnyDatabase
und dbAdminAnyDatabase
.
Wenn Benutzer, die aus Serviceberechtigungsnachweise erstellt wurden, eine andere Rolle haben müssen, können Sie den Benutzer mit Administratorberechtigung verwenden, um ihre Rolle zu ändern.
Verwaltung von Benutzern und Rollen über die CLI
Benutzer, die in der CLI erstellt werden, erhalten die Rollen readWriteAnyDatabase
und dbAdminAnyDatabase
.
Wenn Sie einen Benutzer mit einer anderen Rolle benötigen, können Sie den admin
Benutzer verwenden, um seine Rolle zu ändern.
Benutzer, die direkt von der CLI aus erstellt werden, erscheinen nicht in Service Credentials, aber Sie können sie hinzufügen.
- Wenn Sie Ihren Service über das Cloud Databases-CLI-Plug-in verwalten, erstellen Sie einen neuen Benutzer mit
cdb user-create
. Um beispielsweise einen neuen Benutzer für Ihre Bereitstellung zu erstellen, verwenden Sie den folgenden Befehl:
ibmcloud cdb user-create <INSTANCE_NAME_OR_CRN> <NEWUSERNAME> <NEWPASSWORD>
-
Wenn die Aufgabe abgeschlossen ist, rufen Sie die Verbindungszeichenfolgen des neuen Benutzers mit dem Befehl
ibmcloud cdb deployment-connections
ab. -
Bei MongoDB werden Benutzerdaten zentral in der Datenbank
admin
gespeichert. Listen Sie alle Benutzer und ihre Rollen und Datenbankberechtigungen in der Mongo-Shell mit dem Befehlshow users
auf.
ibmcloud cdb deployment-connections --start -u admin mongodb-production
Database Password>>
MongoDB shell version v4.0.3
connecting to: mongodb://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users
Verwaltung von Benutzern und Rollen über die API
Benutzer, die in der API erstellt werden, erhalten die Rollen readWriteAnyDatabase
und dbAdminAnyDatabase
.
Wenn Sie eine andere Rolle für die Benutzer benötigen, verwenden Sie den Benutzer admin, um ihre Rolle zu ändern.
Benutzer, die direkt über die API erstellt werden, erscheinen nicht in Service Credentials, aber Sie können sie hinzufügen.
Die Basisendpunkt, die im Abschnitt Übersicht Ihres Service angezeigt wird, stellt die Basis-URL für den Zugriff auf diese Implementierung über die API bereit. Verwenden Sie zum Erstellen und Verwalten von Benutzern die Basis-URL
mit dem Endpunkt /users
.
Der Befehl sieht wie folgt aus:
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type}
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}' \
Wenn Sie die Verbindungszeichenfolgen eines Benutzers abrufen möchten, verwenden Sie die Basis-URL mit dem Endpunkt /users/{userid}/connections
.
MongoDB-created Benutzer und Rollen
Wenn die eingebauten Benutzer und Rollen nicht für Ihre Umgebung geeignet sind, erstellen Sie Benutzer und Rollen direkt in MongoDB. Der Benutzer mit Administratorberechtigung für Ihre Bereitstellung verfügt über die Berechtigung zum Erstellen einer beliebigen Rolle oder Berechtigungsgruppe für Ihre Bereitstellung.
Benutzer und Rollen, die direkt in MongoDB erstellt werden, werden nicht in Serviceberechtigungsnachweise angezeigt und nicht in Ihr IBM Cloud-Konto oder IAM integriert.
Der Benutzer ibm
Wenn Sie die Mongo-Shell verwenden, um die Benutzer in Ihrem Einsatz aufzulisten, fällt Ihnen vielleicht ein Benutzer mit dem Namen ibm
auf. Bei dem Benutzer ibm
handelt es sich um das interne Benutzerkonto mit Rootberechtigung,
das für die Verwaltung von Replikation, Clusteroperationen und anderen Funktionen verwendet wird, die die Stabilität Ihrer Bereitstellung sicherstellen. Das Ändern oder Löschen des ibm
-Benutzers ist nicht ratsam und stört die
Stabilität Ihrer Bereitstellung.
ops_manager
-Benutzer für MongoDB Enterprise Edition
Ops Manager ist nur in Databases for MongoDB Enterprise Edition-Bereitstellungen verfügbar. Der Benutzertyp ops_manager
verfügt über eingeschränkte Berechtigungen. Weitere Informationen finden Sie in der Dokumentation zuOps Manager.