Auf dieser Seite wird beschrieben, wie Sie als Nutzer der detaillierten Zugriffssteuerung auf eine Spanner-Datenbank zugreifen.
Weitere Informationen zur detaillierten Zugriffssteuerung finden Sie unter Detaillierte Zugriffssteuerung.
Als Nutzer der detaillierten Zugriffssteuerung müssen Sie eine Datenbankrolle auswählen, um SQL-Anweisungen und ‑Abfragen auszuführen und Zeilenvorgänge in einer Datenbank auszuführen. Die Rollenauswahl bleibt während der gesamten Sitzung bestehen, bis Sie die Rolle ändern.
Wenn Sie eine Abfrage, einen DML- oder einen 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. In diesem Fall wird in derGoogle Cloud -Console keine Auswahl für die Datenbankrolle angezeigt und die Sitzung wird mit den Berechtigungen auf Datenbankebene fortgesetzt.
Wenn Sie nur Berechtigungen für die detaillierte Zugriffssteuerung und keine IAM-Berechtigungen auf Datenbankebene haben, müssen Sie Zugriff auf die Systemrolle
spanner_sys_reader
oder eine ihrer Mitgliedsrollen erhalten haben. Wählen Sie auf der Seite Übersicht der Datenbank eine Rolle aus, damit Ihre Sitzung in der Google Cloud -Console mit den erforderlichen Berechtigungen fortgesetzt wird.
- Google Cloud SDK
Wenn Sie beim Einreichen einer Abfrage, DML-Anweisung oder eines Zeilenvorgangs eine Datenbankrolle angeben, prüft Spanner die Berechtigungen für die detaillierte Zugriffssteuerung. Wenn die Prüfung fehlschlägt, prüft Spanner nicht auf 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 diesen 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 neben dem Feld Aktuelle Rolle auf das Stiftsymbol Datenbankrolle ändern.
Wenn sich ein Nutzer mit der Zugriffssteuerung anmeldet, hat dieses Feld standardmäßig den Wert
public
. Informationen zur Systemrollepublic
finden Sie unter Systemrollen für die detaillierte 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