Questa pagina descrive come funziona Cloud SQL con utenti e ruoli di SQL Server. SQL I ruoli server consentono di controllare l'accesso e le funzionalità degli utenti per accedere a un'istanza SQL Server.
Per informazioni sulla creazione e la gestione degli utenti Cloud SQL, consulta Creazione di e la gestione degli utenti.
Ruoli e utenti di SQL Server
I ruoli SQL Server possono essere ruoli singoli o come gruppo di ruoli.
Un utente è un ruolo con la possibilità di accedere (il ruolo ha il LOGIN
autorizzazione). Tutti i ruoli creati da Cloud SQL hanno l'autorizzazione LOGIN
,
quindi Cloud SQL utilizza i termini "role" e "utente" in modo intercambiabile. Tuttavia, se
crei un ruolo con qualsiasi strumento client compatibile con SQL Server,
il ruolo non riceve necessariamente l'autorizzazione LOGIN
.
Cloud SQL per SQL Server limita l'accesso a determinati ruoli del server
offrono privilegi avanzati. Esempi di questi ruoli sono DbRootRole
,
serveradmin
, securityadmin
, setupadmin
, diskadmin
e dbcreator
.
Tutti gli utenti di SQL Server devono avere una password. Di conseguenza, non puoi accedere con un utente senza password.
Super user e stored procedure di sistema
Cloud SQL per SQL Server è un servizio gestito, quindi limita l'accesso a determinate le stored procedure di sistema e le tabelle che richiedono privilegi avanzati. Nel Cloud SQL, non puoi creare utenti con un super user o avere accesso autorizzazioni aggiuntive.
Utenti SQL Server predefiniti
Quando crei una nuova istanza Cloud SQL per SQL Server, il valore predefinito sqlserver
è già stato creato automaticamente, sebbene sia necessario impostarne la password.
L'utente sqlserver
fa parte del ruolo CustomerDbRootRole
e i suoi
le autorizzazioni (privilegi) includono:
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
Puoi anche aggiungere cloudsql enable linked servers
all'istanza se vuoi utilizzarla con i server collegati. Questo flag garantisce
la seguente autorizzazione al tuo server:
ALTER ANY LINKED SERVER
Concedere le autorizzazioni del server
Quando concedi privilegi utilizzando qualsiasi GRANT
comando,
devi passare CustomerDbRootRole
come, ad esempio, il valore di
grantor_principal
.
Il seguente esempio di GRANT ALTER ANY LOGIN
è valido:
GRANT ALTER ANY LOGIN TO [Account] AS CustomerDbRootRole
Il seguente esempio di GRANT ALTER ANY LOGIN
non è valido:
GRANT ALTER ANY LOGIN TO [Account]
Altri utenti SQL Server
Puoi creare altri utenti o ruoli di SQL Server. Tutti gli utenti che
create con Cloud SQL ricevono le stesse autorizzazioni per il database
Accesso a sqlserver
. Tuttavia, se utilizzi una procedura diversa per creare un utente
(anziché crearlo con Cloud SQL), l'utente non avrà lo stesso
autorizzazioni come gli account amministratore del cliente o l'utente sqlserver
. Per
Ad esempio, se utilizzi il comando
accedi
processo e aggiungere l'accesso al ruolo del server CustomerDbRootRole
, l'utente
non disporranno delle stesse autorizzazioni degli account amministratore del cliente
sqlserver
utente. Pertanto, puoi utilizzare Cloud SQL per creare un utente se
intendono che l'utente abbia le stesse autorizzazioni di database dell'accesso a sqlserver
.
Per convalidare la differenza nelle autorizzazioni tra due account, puoi utilizzare
la funzione seguente:
sys.fn_my_permissions.
Importazioni database: autorizzazioni del proprietario
Quando importi un database, il trattamento del proprietario varia come segue, a seconda in base al tipo di proprietario:
- Per un accesso esistente che non sia
sa
: Cloud SQL mantiene il proprietario in questione e crea un utente denominatosqlserver
che corrisponde all'accessosqlserver
. Cloud SQL concede le autorizzazioniCONTROL
eALTER ANY USER
a quell'utente disqlserver
. - Per gli accessi sconosciuti o creati dal sistema: Cloud SQL
trasferisce la proprietà del database all'accesso
sqlserver
.
Modifica delle autorizzazioni degli utenti
L'ALTER RUOLO è disponibile per modificare le autorizzazioni dell'utente. Se crei un nuovo utente cliente, puoi associarlo a un ruolo diverso o fornire autorizzazioni aggiuntive.
Risoluzione dei problemi
Errore durante l'accesso al database
Quando provi ad accedere a un database che hai creato, in qualità di utente creato da te, ottieni il seguente errore:
The server principal USERNAME is not able to access the database DATABASE_NAME under the current security context.
Il problema potrebbe essere
L'utente non è membro del database.
Cose da provare
Connettiti al database come utente sqlserver
e aggiungi il nuovo utente,
poi
assegna al nuovo utente il ruolo db_owner
per il database. Per
esempio:
EXEC sp_adduser 'user'; EXEC sp_addrolemember 'db_owner', 'user'
Passaggi successivi
- Configura l'utente per l'istanza.
- Creare e gestire gli utenti.
- Crea e gestisci o Microsoft SQL Server.