VENDITE: 1-800-867-1389

Gestione di database e account di accesso in database SQL di Azure

Aggiornamento: novembre 2014

In Database SQL di Microsoft Azure, quando ci si iscrive al servizio, il processo di provisioning crea un server database SQL di Azure, un database denominato master e un account di accesso che è l'entità di livello server del server database SQL di Azure. Tale account di accesso è simile all'entità di livello server, sa, per un'istanza di SQL Server locale. 

L'account dell'entità di livello server database SQL di Azure dispone sempre delle autorizzazioni necessarie a gestire la sicurezza a livello di server e a livello di database. Questo argomento illustra come usare l'entità di livello server e altri account per gestire gli accessi e i database in Database SQL di Microsoft Azure.  

In Database SQL di Microsoft Azure la sicurezza viene gestita in modo analogo a quanto accade per un'istanza locale di SQL Server. La gestione della sicurezza a livello di database è pressoché identica, con differenze solo nei parametri disponibili. Poiché le istanze di database SQL di Azure possono occupare uno o più computer fisici, per il Database SQL di Microsoft Azure viene usata una strategia diversa per quanto riguarda la gestione a livello di server. Nella tabella seguente sono riassunte le differenze tra la gestione della sicurezza in SQL Server on-premise rispetto a Database SQL di Microsoft Azure.

 

Differenza SQL Server on-premise Database SQL di Microsoft Azure

La gestione della sicurezza a livello di server avviene:

Nella cartella Sicurezza di Esplora oggetti di SQL Server Management Studio

Nel database master

Ruolo di sicurezza a livello di server per la creazione di account di accesso

Ruolo predefinito del server securityadmin

Per altre informazioni, vedere Ruoli a livello di server

Ruolo del database loginmanager nel database master.

Comandi per la gestione degli account di accesso

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

Esistono alcune limitazioni per i parametri ed è necessario essere connessi al database master.

Vista che mostra tutti gli account di accesso

sys.syslogins (sys.sql_logins per gli account di accesso di autenticazione SQL Server)

sys.sql_logins

(È necessario essere connessi al database master)

Ruolo di sicurezza a livello di server per la creazione di database

Ruolo predefinito del database dbcreator

Per altre informazioni, vedere Ruoli a livello di server

Ruolo del database dbmanager nel database master.

Comando per la creazione di un database

CREATE DATABASE

CREATE DATABASE

Esistono alcune limitazioni per i parametri ed è necessario essere connessi al database master.

Eliminazione di database

DROP DATABASE

DROP DATABASE

Se un utente ha il ruolo dbmanager, è autorizzato a eseguire un'operazione DROP su qualsiasi database indipendentemente da chi sia l'utente che lo ha creato.

Vista che elenca tutti i database

sys.databases

(vista)

sys.databases

(È necessario essere connessi al database master)

Il server database SQL di Azure è un'astrazione che definisce un raggruppamento di database. È possibile che database associati al server database SQL di Azure si trovino in computer fisici distinti del data center di Microsoft. È possibile gestirli a livello di server usando un unico database denominato master.

Il database master tiene traccia di account di accesso e di autorizzazioni per creare database o altri account di accesso. È necessario essere connessi al database master quando si eseguono le operazioni CREATE, ALTERo DROP per account di accesso o database. Il database master dispone anche delle viste sys.sql_logins e sys.databases che possono essere utilizzate per visualizzare rispettivamente gli account di accesso e i database.

noteNota
Il comando USE non è supportato per il passaggio tra un database e l'altro. Stabilire una connessione direttamente con il database di destinazione.

È possibile gestire la sicurezza a livello di database per utenti e oggetti in Database SQL di Microsoft Azure nello stesso modo in cui si eseguirebbe per un'istanza on-premise di SQL Server. Ci sono differenze solo nei parametri disponibili per i comandi corrispondenti. Per altre informazioni, vedere la Guida di riferimento a Transact-SQL (Transact-SQL).

È possibile gestire gli account di accesso con l'accesso dell'entità di livello server connettendosi al database master. È possibile usare le istruzioni CREATE LOGIN, ALTER LOGIN o DROP LOGIN. Nel seguente esempio viene creato un account di accesso denominato login1:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
noteNota
Durante la creazione di un account di accesso, è necessario utilizzare una password complessa. Per altre informazioni, vedere Password complesse.

Per connettersi a Database SQL di Microsoft Azure usando gli account di accesso creati, è necessario innanzitutto concedere a ogni account autorizzazioni a livello di database usando il comando CREATE USER. Per altre informazioni, vedere Concessione di autorizzazioni a livello di server a un account di accesso.

Poiché alcuni strumenti consentono di implementare in modo diverso il flusso TDS, potrebbe essere necessario aggiungere il nome del server database SQL di Azure al nome dell'account di accesso nella stringa di connessione utilizzando la notazione <login>@<server>. In questi casi, separare il nome dell'account di accesso e del server database SQL di Azure con il simbolo @. Se ad esempio l'account di accesso è denominato login1 e il nome completo del server database SQL di Azure è servername.database.windows.net, il parametro del nome utente della stringa di connessione deve essere: login1@servername. Questa restrizione crea limitazioni sul testo che è possibile scegliere per il nome di accesso. Per altre informazioni, vedere CREATE LOGIN (Transact-SQL).

Affinché gli account di accesso diversi dall'entità di livello server possano gestire la sicurezza a livello di server, Database SQL di Microsoft Azure offre due ruoli di sicurezza: loginmanager per la creazione di account di accesso e dbmanager per la creazione di database. Solo gli utenti nel database master possono essere aggiunti a questi ruoli del database.

noteNota
Per creare account di accesso o database, è necessario essere connessi al database master (rappresentazione logica di master).

Analogamente a quanto accade con il ruolo predefinito del server securityadmin per un'istanza on-premise di SQL Server, il ruolo del database loginmanager in Database SQL di Microsoft Azure ha l'autorizzazione per la creazione di account di accesso. Gli account di accesso possono essere creati solo dall'account di accesso dell'entità di livello server (creato dal processo di provisioning) o dai membri del ruolo del database loginmanager.

Il ruolo del database Database SQL di Microsoft Azure dbmanager è simile al ruolo predefinito del server dbcreator per un'istanza on-premise di SQL Server. Solo l'account di accesso dell'entità di livello server (creato dal processo di provisioning) o i membri del ruolo del database dbmanager possono creare database. Una volta che un utente è membro del ruolo del database dbmanager, può creare un database con il comando database SQL di Azure CREATE DATABASE che deve però essere eseguito nel database master. Per altre informazioni, vedere CREATE DATABASE (Transact-SQL).

Per creare un account di accesso e l'utente associato che può creare database o altri account di accesso, eseguire i passaggi seguenti:

  1. Connettersi al database master usando le credenziali dell'account di accesso dell'entità di livello server (creato dal processo di provisioning) o le credenziali di un membro esistente del ruolo del database loginmanager.

  2. Creare un account di accesso usando il comando CREATE LOGIN. Per altre informazioni, vedere CREATE LOGIN (Transact-SQL).

  3. Creare un nuovo utente per l'account di accesso nel database master usando il comando CREATE USER. Per altre informazioni, vedere CREATE USER (Transact-SQL).

  4. Usare la stored procedure sp_addrolememeber per aggiungere il nuovo utente al ruolo del database dbmanager, al ruolo del database loginmanager oppure entrambi.

L'esempio di codice seguente mostra come creare un account di accesso, login1 e un utente del database corrispondente denominato login1User che possa creare database o altri account di accesso durante la connessione al database master:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE USER login1User FROM LOGIN login1;
EXEC sp_addrolemember 'dbmanager', 'login1User';
EXEC sp_addrolemember 'loginmanager', 'login1User';
noteNota
Durante la creazione di un account di accesso, è necessario utilizzare una password complessa. Per altre informazioni, vedere Password complesse.

È necessario creare tutti gli account di accesso nel database master. Dopo aver creato un account accesso, è possibile creare un account utente in un altro database per tale account. Database SQL di Microsoft Azure supporta anche ruoli del database analogamente a quanto avviene con un'istanza on-premise di SQL Server.

Per creare un account utente in un altro database, senza aver creato un account di accesso o un database, eseguire i passaggi seguenti:

  1. Connettersi al database master (con un account di accesso che dispone dei ruoli loginmanager e dbmanager).

  2. Creare un nuovo account di accesso usando il comando CREATE LOGIN. Per altre informazioni, vedere CREATE LOGIN (Transact-SQL). L'autenticazione di Windows non è supportata.

  3. Creare un nuovo account usando il comando CREATE DATABASE. Per altre informazioni, vedere CREATE DATABASE (Transact-SQL).

  4. Stabilire una connessione al nuovo database (con l'account di accesso che creato il database).

  5. Creare un nuovo utente nel nuovo database usando il comando CREATE USER. Per altre informazioni, vedere CREATE USER (Transact-SQL).

L'esempio di codice seguente illustra come creare un account di accesso denominato login1 e un database denominato database1:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE DATABASE database1;
noteNota
Durante la creazione di un account di accesso, è necessario utilizzare una password complessa. Per altre informazioni, vedere Password complesse.

L'esempio seguente illustra come creare un utente del database denominato login1User nel database database1 che corrisponde all'account di accesso login1:

-- Establish a new connection to the database1 database
CREATE USER login1User FROM LOGIN login1;

Questo modello di autorizzazione a livello di database in Database SQL di Microsoft Azure corrisponde all'istanza on-premise di SQL Server. Per informazioni, vedere gli argomenti seguenti nei riferimenti della documentazione online di SQL Server.

Controllo di identità e accesso (Motore di database)

Procedure per la gestione di account di accesso, utenti e schemi

Lezione 2: Configurazione delle autorizzazioni per gli oggetti di database

noteNota
È possibile che istruzioni Transact-SQL correlate alla Sicurezza in Database SQL di Microsoft Azure differiscano leggermente nei parametri disponibili. Per altre informazioni, vedere Guida di riferimento per Transact-SQL del database SQL di Azure.

Per visualizzare account di accesso e database nel server database SQL di Azure, usare rispettivamente le viste sys.sql_logins e sys.databases del database master. L'esempio seguente illustra come visualizzare un elenco di tutti gli account di accesso e database del server database SQL di Azure.

-- first, connect to the master database
SELECT * FROM sys.sql_logins;
SELECT * FROM sys.databases; 

Vedere anche

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2014 Microsoft