Auf dieser Seite wird erläutert, wie Sie als Nutzer einer detaillierten Zugriffssteuerung auf eine Spanner-Datenbank zugreifen.
Weitere Informationen zur fein abgestimmten Zugriffssteuerung
Als Nutzer einer detaillierten Zugriffssteuerung müssen Sie eine Datenbankrolle auswählen, die zum Ausführen von SQL-Anweisungen und -Abfragen sowie zum Ausführen von Zeilenvorgängen in einer Datenbank verwendet werden soll. Ihre Rollenauswahl bleibt während der gesamten Sitzung bestehen, bis Sie die Rolle ändern.
Wenn Sie einen Abfrage-, DML- oder Zeilenvorgang senden, prüft Spanner die Autorisierung anhand der folgenden Regeln:
- Google Cloud Console
Spanner prüft zuerst, ob Sie IAM-Berechtigungen auf Datenbankebene haben. Wenn ja, wird in der Google Cloud Console keine Auswahl für Datenbankrollen angezeigt und die Sitzung wird mit Ihren Berechtigungen auf Datenbankebene fortgesetzt.
Wenn Sie nur detaillierte Zugriffssteuerungsberechtigungen und keine Berechtigungen auf IAM-Datenbankebene haben, muss Ihnen der Zugriff auf die Systemrolle
spanner_sys_reader
oder eine ihrer Mitgliederrollen gewährt worden sein. Wählen Sie auf der Seite Übersicht der Datenbank eine Rolle aus, damit Ihre Google Cloud Console-Sitzung mit den erforderlichen Berechtigungen fortgesetzt wird.
- Google Cloud SDK
Wenn Sie beim Senden einer Abfrage, einer DML- oder eines Zeilenvorgangs eine Datenbankrolle angeben, prüft Spanner detailgenaue Berechtigungen für die Zugriffssteuerung. Wenn die Prüfung fehlschlägt, sucht Spanner nicht nach IAM-Berechtigungen auf Datenbankebene und der Vorgang schlägt fehl.
Wenn Sie keine Datenbankrolle angeben, prüft Spanner IAM-Berechtigungen auf Datenbankebene. Sind die Prüfungen erfolgreich, wird die Sitzung mit den Berechtigungen auf Datenbankebene fortgesetzt.
Mit den folgenden Methoden können Sie beim Zugriff auf eine Spanner-Datenbank eine Datenbankrolle angeben:
Console
Wählen Sie eine Datenbank aus und klicken Sie dann auf der Seite Übersicht auf das Symbol Datenbankrolle ändern (Stift) neben dem Feld Aktuelle Rolle.
Wenn sich ein Nutzer für die detaillierte Zugriffssteuerung anmeldet, enthält dieses Feld standardmäßig den Wert
public
. Informationen zur Systemrollepublic
finden Sie unter Detailgenaue Systemrollen für die Zugriffssteuerung.Wählen Sie im Dialogfeld Datenbankrolle ändern eine andere Rolle aus der Liste der verfügbaren Rollen aus.
Klicken Sie auf Aktualisieren.
Im Feld Aktuelle Rolle wird die neue Rolle angezeigt.
gcloud
Fügen Sie dem Befehl
gcloud spanner databases execute-sql
die Option--database-role
hinzu:gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME
Clientbibliotheken
C++
C#
Go
Java
Node.js
PHP
Python
Ruby