Auf dieser Seite wird erläutert, wie Sie als Nutzer mit detaillierter Zugriffssteuerung auf eine Spanner-Datenbank zugreifen.
Weitere Informationen zur detaillierten Zugriffssteuerung
Als Nutzer mit differenzierter Zugriffssteuerung müssen Sie eine Datenbankrolle auswählen, die zum Ausführen von SQL-Anweisungen und -Abfragen sowie zum Ausführen von Zeilenvorgängen für eine Datenbank verwendet werden soll. Ihre Rollenauswahl bleibt während der gesamten Sitzung bestehen, bis Sie die Rolle ändern.
Wenn Sie eine Abfrage, eine DML oder einen Zeilenvorgang senden, überprü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 Datenbankrollenauswahl angezeigt und die Sitzung wird mit den Berechtigungen auf Datenbankebene fortgesetzt.
Wenn Sie nur detaillierte Zugriffssteuerungsberechtigungen und keine Berechtigungen auf IAM-Datenbankebene haben, muss Ihnen 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 fortfährt.
- Google Cloud SDK
Wenn Sie beim Senden einer Abfrage, einer DML oder eines Zeilenvorgangs eine Datenbankrolle angeben, prüft Spanner detaillierte Berechtigungen für die Zugriffssteuerung. Wenn die Prüfung fehlschlägt, prüft Spanner keine IAM-Berechtigungen auf Datenbankebene und der Vorgang schlägt fehl.
Wenn Sie keine Datenbankrolle angeben, prüft Spanner die IAM-Berechtigungen auf Datenbankebene. Wenn die Prüfungen erfolgreich sind, 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 auf der Seite Übersicht der Datenbank neben dem Feld Aktuelle Rolle auf das Symbol Datenbankrolle ändern (Stift).
Wenn sich ein Nutzer mit einer detaillierten Zugriffssteuerung anmeldet, hat dieses Feld standardmäßig den Wert
public
. Informationen zur Systemrollepublic
finden Sie unter Detaillierte Zugriffssteuerungsrollen.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
so 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