Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Crea un account di accesso del Motore di database per SQL Server e il Database SQL di Azure.
Si applica a: SQL Server (da SQL Server 2008 alla versione corrente), Database SQL di Azure. |
Convenzioni della sintassi Transact-SQL
Sintassi
-- SQL Server Syntax
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }
<option_list1> ::=
PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
[ , <option_list2> [ ,... ] ]
<option_list2> ::=
SID = sid
| DEFAULT_DATABASE =database
| DEFAULT_LANGUAGE =language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
| CREDENTIAL =credential_name <sources> ::=
WINDOWS [ WITH <windows_options>[ ,... ] ]
| CERTIFICATE certname
| ASYMMETRIC KEY asym_key_name<windows_options> ::=
DEFAULT_DATABASE =database
| DEFAULT_LANGUAGE =language
-- Syntax for Windows Azure SQL Database
CREATE LOGIN login_name
{ WITH <option_list3> }
<option_list3> ::=
PASSWORD = { 'password' }
[ SID = sid ]
Argomenti
login_name
Specifica il nome dell'account di accesso creato.Esistono quattro tipi di account di accesso: account di accesso di SQL Server, account di accesso di Windows, account di accesso sui quali viene eseguito il mapping a certificati e account di accesso sui quali viene eseguito il mapping a chiavi asimmetriche.Quando si creano account di accesso che vengono mappati da un account di dominio di Windows, è necessario utilizzare il nome di accesso utente precedente a Windows 2000 nel formato [<NomeDominio>\<nome_account_accesso>].Non è possibile utilizzare un nome UPN nel formato login_name@DomainName.Vedere l'esempio D più avanti in questo argomento.Gli account di accesso dell'autenticazione di SQL Server sono di tipo sysname e devono essere conformi alle regole per gli identificatori e non possono contenere '\'.Gli account di accesso di Windows possono contenere '\'.PASSWORD ='password'
Si applica solo agli account di accesso di SQL Server.Specifica la password per l'account di accesso che viene creato.È consigliabile utilizzare una password complessa.Per altre informazioni, vedere Password complesse e Criteri password.Per le password viene fatta distinzione tra maiuscole e minuscole.Le password devono essere sempre composte da almeno 8 caratteri e non possono superare i 128 caratteri.Le password possono includere i caratteri a-z, A-Z, 0-9 e la maggior parte dei caratteri non alfanumerici.Le password non possono contenere virgolette singole o il valore di login_name.
PASSWORD **=**hashed_password
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Si applica solo alla parola chiave HASHED.Specifica il valore hash della password per l'account di accesso in fase di creazione.
HASHED
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Si applica solo agli account di accesso di SQL Server.Specifica che è già stato eseguito l'hashing per la password immessa dopo l'argomento PASSWORD. Se questa opzione non è selezionata, viene generato l'hash della stringa immessa come password prima che questa venga archiviata nel database.Questa opzione deve essere utilizzata solo per la migrazione dei database da un server a un altro.Non utilizzare l'opzione HASHED per creare nuovi account di accesso.L'opzione HASHED non può essere utilizzata con hash creati da SQL Server 7 o versioni precedenti.
MUST_CHANGE
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Si applica solo agli account di accesso di SQL Server.Se questa opzione è inclusa, in SQL Server viene richiesto all'utente di immettere una nuova password al primo utilizzo del nuovo account di accesso.
CREDENTIAL **=**credential_name
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Nome della credenziale su cui eseguire il mapping al nuovo account di accesso di SQL Server.La credenziale deve già esistere nel server. Attualmente questa opzione consente solo di connettere la credenziale a un account di accesso.Non è possibile eseguire il mapping di una credenziale all'account di accesso sa.
SID = sid
Utilizzato per ricreare un account di accesso.Si applica solo agli account di accesso con autenticazione di SQL Server, non agli account di accesso con autenticazione di Windows.Specifica il SID del nuovo account di accesso con autenticazione di SQL Server.Se questa opzione non viene utilizzata, SQL Server assegna un SID automaticamente.La struttura del SID dipende dalla versione di SQL Server.SID di account di accesso di SQL Server: valore letterale (Binary(16)) a 16 byte basato su un GUID.Ad esempio SID = 0x14585E90117152449347750164BA00A7.
SID di account di accesso del Database SQL: struttura SID valida per il Database SQL di Azure.Si tratta in genere di un valore letterale (binary(32)) a 32 byte costituito da 0x01060000000000640000000000000000 e 16 byte che rappresentano un GUID.Ad esempio SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.
DEFAULT_DATABASE **=**database
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Specifica il database predefinito da assegnare all'account di accesso.Se questa opzione non è inclusa, il database predefinito viene impostato su master.
DEFAULT_LANGUAGE **=**language
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Specifica la lingua predefinita da assegnare all'account di accesso.Se questa opzione non è inclusa, la lingua predefinita viene impostata sulla lingua predefinita corrente del server.Se la lingua predefinita del server viene modificata in seguito, la lingua predefinita dell'account di accesso rimane inalterata.
CHECK_EXPIRATION = { ON | OFF }
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Si applica solo agli account di accesso di SQL Server.Specifica se i criteri di scadenza delle password devono essere applicati a questo account di accesso.Il valore predefinito è OFF.
CHECK_POLICY = { ON | OFF }
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Si applica solo agli account di accesso di SQL Server.Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL Server devono essere applicati a questo account di accesso.Il valore predefinito è ON.
Se i criteri di Windows richiedono password complesse, queste devono contenere almeno tre dei quattro caratteri seguenti:
Un carattere maiuscolo (A-Z).
Un carattere minuscolo (a-z)
Una cifra (0-9).
Un carattere non alfanumerico, ad esempio uno spazio, _, @, *, ^, %, !, $, # o &.
WINDOWS
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Specifica che sull'account di accesso deve essere eseguito il mapping a un account di accesso di Windows.
CERTIFICATE certname
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Specifica il nome di un certificato da associare a questo account di accesso.Questo certificato deve essere già presente nel database master.
ASYMMETRIC KEY asym_key_name
Si applica a: SQL Server 2008 tramite SQL Server 2014.
Specifica il nome di una chiave asimmetrica da associare a questo account di accesso.Questa chiave deve essere già presente nel database master.
Note
Per le password viene fatta distinzione tra maiuscole e minuscole.
L'utilizzo di password con hashing già eseguito è supportato solo quando si creano gli account di accesso di SQL Server.
Se vengono specificati entrambi gli argomenti HASHED e CHECK_POLICY = ON, la complessità della password non verrà verificata fino alla successiva modifica della password.
Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON.In caso contrario, l'istruzione non verrà eseguita correttamente.
Una combinazione di CHECK_POLICY = OFF e CHECK_EXPIRATION = ON non è supportata.
Quando l'opzione CHECK_POLICY è impostata su OFF, il valore specificato in lockout_time viene reimpostato e l'opzione CHECK_EXPIRATION viene impostata su OFF.
Importante
CHECK_EXPIRATION e CHECK_POLICY sono imposte solo in Windows Server 2003 e versioni successive.Per ulteriori informazioni, vedere Criteri password.
Gli account di accesso creati da certificati o chiavi asimmetriche vengono utilizzati solo per la firma del codicee non possono essere utilizzati per la connessione a SQL Server.È possibile creare un account di accesso da un certificato o una chiave asimmetrica solo quando il certificato o la chiave asimmetrica esistono già nel database master.
Per uno script con cui trasferire gli account di accesso, vedere la pagina relativa alla modalità di trasferimento degli account di accesso e delle password tra istanze di SQL Server 2005 e SQL Server 2008.
La creazione automatica di un account di accesso abilita il nuovo account a cui viene concessa l'autorizzazione CONNECT SQL a livello di server.
Account di accesso del database SQL di Windows Azure
In Database SQL l'istruzione CREATE LOGIN deve essere l'unica istruzione in un batch.
In Database SQL è necessario essere connessi al database master per creare un account di accesso.
Le regole di SQL Server consentono di creare un account di accesso con autenticazione di SQL Server nel formato <nomeaccountaccesso>@<nomeserver>.Se il server del Database SQL in uso è myazureserver e l'account di accesso è myemail@live.com, è possibile specificare l'account di accesso nel formato myemail@live.com@myazureserver.Utilizzare questa tecnica solo se si prevede di utilizzare queste credenziali per la connessione a un singolo server.Alcune versioni meno recenti delle librerie client SQL richiedono l'utilizzo del formato <nomeaccountaccesso>@<nomeserver> durante la connessione al database SQL Azure.
Per ulteriori informazioni sugli account di accesso del Database SQL, vedere Gestione di database e account di accesso in database SQL di Windows Azure.
Autorizzazioni
In SQL Server è richiesta l'autorizzazione ALTER ANY LOGIN per il server o l'appartenenza nel ruolo predefinito del server securityadmin.
In Database SQL solo l'account di accesso dell'entità di livello server (creato dal processo di provisioning) o i membri del ruolo del database loginmanager nel database master possono creare nuovi account di accesso.
Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL per il server.
Passaggi successivi
Una volta creato, un account di accesso può connettersi al Motore di databaseo al Database SQL, ma disporrà solo delle autorizzazioni concesse al ruolo public.Provare a effettuare alcune delle attività seguenti:
Per connettersi a un database, creare un utente del database per l'account di accesso.Per ulteriori informazioni, vedere CREATE USER (Transact-SQL).
Creare un ruolo del server definito dall'utente utilizzando CREATE SERVER ROLE (Transact-SQL).Utilizzare ALTER SERVER ROLE ...ADD MEMBER per aggiungere il nuovo account di accesso al ruolo del server definito dall'utente.Per ulteriori informazioni, vedere CREATE SERVER ROLE (Transact-SQL) e ALTER SERVER ROLE (Transact-SQL).
Utilizzare sp_addsrvrolemember per aggiunge l'account di accesso a un ruolo predefinito del server.Per ulteriori informazioni, vedere Ruoli a livello di server e sp_addsrvrolemember (Transact-SQL).
Utilizzare l'istruzione GRANT per concedere le autorizzazioni a livello di server al nuovo account di accesso o a un ruolo in cui esso è contenuto.Per ulteriori informazioni, vedere GRANT (Transact-SQL).
Esempi
A.Creazione di un account di accesso con una password
Nell'esempio seguente viene creato un account di accesso per un utente specifico e viene assegnata una password.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO
B.Creazione di un account di accesso con una password
Nell'esempio seguente viene creato un account di accesso per un utente specifico e viene assegnata una password.L'opzione MUST_CHANGE richiede all'utente di modificare questa password alla prima connessione al server.
Si applica a: SQL Server 2008 tramite SQL Server 2014. |
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO
C.Creazione di un account di accesso sul quale viene eseguito il mapping a una credenziale
Nell'esempio seguente viene creato l'account di accesso per utente specifico, utilizzando il relativo nome.Su questo account di accesso viene eseguito il mapping alla credenziale.
Si applica a: SQL Server 2008 tramite SQL Server 2014. |
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>',
CREDENTIAL = <credentialName>;
GO
D.Creazione di un account di accesso da un certificato
Nell'esempio seguente viene creato un account di accesso per un utente specifico da un certificato nel database master.
Si applica a: SQL Server 2008 tramite SQL Server 2014. |
USE MASTER;
CREATE CERTIFICATE <certificateName>
WITH SUBJECT = '<login_name> certificate in master database',
EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <login_name> FROM CERTIFICATE <certificateName>;
GO
E.Creazione di un account di accesso da un account di dominio di Windows
Nell'esempio seguente viene creato un account di accesso da un account di dominio di Windows.
Si applica a: SQL Server 2008 tramite SQL Server 2014. |
CREATE LOGIN [<domainName>\<login_name>] FROM WINDOWS;
GO
F.Creazione di un account di accesso da un SID
L'esempio seguente crea prima un account di accesso con autenticazione di SQL Server e determina il SID dell'account di accesso.
CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO
La query restituisce 0x241C11948AEEB749B0D22646DB1A19F2 come SID.La query dell'utente restituirà un valore diverso.Le istruzioni seguenti eliminano l'account di accesso e quindi ricreano l'account di accesso.Utilizzare il SID della query precedente.
DROP LOGIN TestLogin;
GO
CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;
SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO
Vedere anche
Entità (Motore di database)
Criteri password
ALTER LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
Creazione di un account di accesso