Auf dieser Seite wird beschrieben, wie die Arbeit in Cloud SQL mit SQL Server-Nutzern und -Rollen funktioniert. Mit SQL Server-Rollen können Sie den Zugriff und die Funktionen von Nutzern steuern, die auf eine SQL Server-Instanz zugreifen.
Weitere Informationen zum Erstellen und Verwalten von Cloud SQL-Nutzern finden Sie unter Nutzer erstellen und verwalten.
SQL Server-Rollen und -Nutzer
SQL Server-Rollen können eine einzelne Rolle sein oder als Gruppe von Rollen fungieren.
Ein Nutzer ist eine Rolle mit der Erlaubnis zur Anmeldung (die Rolle hat die Berechtigung LOGIN
). Alle von Cloud SQL erstellten Rollen haben die Berechtigung LOGIN
, sodass Cloud SQL die Begriffe „Rolle“ und „Nutzer“ synonym verwendet. Wenn Sie jedoch eine Rolle mit einem Clienttool erstellen, das mit SQL Server kompatibel ist, erhält die Rolle nicht unbedingt die Berechtigung LOGIN
.
Cloud SQL for SQL Server schränkt den Zugriff auf bestimmte Serverrollen ein, die erweiterte Berechtigungen bieten. Beispiele für diese Rollen sind DbRootRole
, serveradmin
, securityadmin
, setupadmin
, diskadmin
und dbcreator
.
Alle SQL Server-Nutzer müssen ein Passwort haben. Sie können sich deshalb nicht mit einem Nutzer anmelden, der kein Passwort hat.
Superuser und vom System gespeicherte Prozeduren
Cloud SQL for SQL Server ist ein verwalteter Dienst, der den Zugriff auf bestimmte vom System gespeicherte Prozeduren und Tabellen beschränkt, für die erweiterte Berechtigungen erforderlich sind. In Cloud SQL können Sie keine Nutzer mit Superuser-Berechtigungen erstellen oder darauf zugreifen.
SQL Server-Standardnutzer
Wenn Sie eine neue Cloud SQL for SQL Server-Instanz erstellen, wird der sqlserver
-Standardnutzer automatisch erstellt. Sie müssen jedoch ein Passwort für ihn festlegen.
Der sqlserver
-Nutzer gehört zur CustomerDbRootRole
-Rolle und verfügt über die folgenden Berechtigungen:
ALTER ANY CONNECTION
ALTER ANY LOGIN
ALTER ANY SERVER ROLE
ALTER SERVER STATE
ALTER TRACE
CONNECT SQL
CREATE ANY DATABASE
CREATE SERVER ROLE
VIEW ANY DATABASE
VIEW ANY DEFINITION
VIEW SERVER STATE
Sie können Ihrer Instanz auch cloudsql enable linked servers
hinzufügen, wenn Sie es mit verknüpften Servern verwenden möchten. Dieses Flag gewährt Ihrem Server die folgende Berechtigung:
ALTER ANY LINKED SERVER
Serverberechtigungen erteilen
Wenn Sie Berechtigungen mit einem GRANT
-Befehl erteilen, müssen Sie CustomerDbRootRole
beispielsweise als Wert von grantor_principal
übergeben.
Das folgende Beispiel von GRANT ALTER ANY LOGIN
ist gültig:
GRANT ALTER ANY LOGIN TO [Account] AS CustomerDbRootRole
Das folgende Beispiel von GRANT ALTER ANY LOGIN
ist ungültig:
GRANT ALTER ANY LOGIN TO [Account]
Andere SQL Server-Nutzer
Sie können andere SQL Server-Nutzer oder -Rollen erstellen. Allen Nutzern, die Sie mit Cloud SQL erstellen, werden die gleichen Datenbankberechtigungen wie bei der sqlserver
-Anmeldung gewährt. Sollten Sie zum Erstellen eines Nutzers aber einen anderen Prozess verwenden (statt ihn mit Cloud SQL anzulegen), hat der Nutzer nicht dieselben Berechtigungen wie die Kundenadministratorkonten oder der sqlserver
-Nutzer. Wenn Sie beispielsweise den Prozess create login nutzen und die Anmeldung der Serverrolle CustomerDbRootRole
hinzufügen, hat der Nutzer nicht die gleichen Berechtigungen wie die Kundenadministratorkonten oder der sqlserver
-Nutzer. Mit Cloud SQL haben Sie deshalb die Möglichkeit, einen Nutzer zu erstellen, der die gleichen Datenbankberechtigungen wie die sqlserver
-Anmeldung hat.
Mit dem Befehl sys.fn_my_permissions können Sie gegebenenfalls den Unterschied der Berechtigungen von zwei Konten ermitteln.
Datenbankimporte: Inhaberberechtigungen
Wenn Sie eine Datenbank importieren, unterscheidet sich das Verfahren für den Inhaber je nach Inhabertyp:
- Für eine vorhandene andere Anmeldung als
sa
: Cloud SQL übernimmt diesen Inhaber und erstellt einen Nutzer namenssqlserver
, der der Anmeldungsqlserver
zugeordnet ist. Cloud SQL gewährt diesemsqlserver
-Nutzer die BerechtigungenCONTROL
undALTER ANY USER
. - Bei unbekannten Anmeldungen oder vom System erstellten Anmeldungen: Cloud SQL überträgt die Inhaberschaft der Datenbank auf die
sqlserver
-Anmeldung.
Berechtigungen für Nutzer ändern
Der Befehl ALTER ROLE kann für das Ändern von Nutzerberechtigungen verwendet werden. Wenn Sie einen neuen Nutzer mit einem Client erstellen, können Sie ihn mit einer anderen Rolle verknüpfen oder unterschiedliche Berechtigungen vergeben.
Fehlerbehebung
Fehler beim Zugriff auf die Datenbank
Beim Versuch, auf eine von Ihnen erstellte Datenbank zuzugreifen, wird der folgende Fehler angezeigt.
The server principal USERNAME is not able to access the database DATABASE_NAME under the current security context.
Mögliche Ursache
Der Nutzer ist kein Mitglied der Datenbank.
Lösungsvorschlag
Stellen Sie eine Verbindung zur Datenbank als sqlserver
-Nutzer her und fügen Sie den neuen Nutzer hinzu. Weisen Sie dann dem neuen Nutzer die Rolle db_owner
für die Datenbank zu. Beispiel:
EXEC sp_adduser 'user'; EXEC sp_addrolemember 'db_owner', 'user'
Nächste Schritte
- Nutzer für Ihre Instanz konfigurieren
- Nutzer erstellen und verwalten
- Datenbanken erstellen und verwalten