CREATE LOGIN (Transact-SQL)
Crea un nuovo account di accesso di SQL Server.
Sintassi
CREATE LOGIN loginName { 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
Argomenti
loginName
Specifica il nome dell'account di accesso creato. Esistono quattro tipi di account di accesso: account di accesso con autenticazione di SQL Server, account di accesso di Windows, account di accesso mappati a certificati e account di accesso mappati a chiavi asimmetriche. Quando si creano account di accesso mappati da un account di dominio di Windows, è necessario utilizzare il nome di accesso utente precedente a Windows 2000, nel formato [<domainName>\<loginName>]. Non è possibile utilizzare un nome UPN nel formato loginName@DomainName. Vedere l'esempio D più avanti in questo argomento. Gli account di accesso con autenticazione di SQL Server sono di tipo sysname, devono essere conformi alle regole per Identificatori e n on 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 ulteriori informazioni, vedere Password complesse.PASSWORD **=**hashed_password
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 solo agli account di accesso di SQL Server. Specifica che per la password immessa dopo l'argomento PASSWORD è già stato eseguito l'hashing. Se questa opzione non è selezionata, sulla stringa immessa come password viene eseguito l'hashing prima che 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.MUST_CHANGE
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
Nome della credenziale da mappare al nuovo account di accesso di SQL Server. La credenziale deve già esistere nel server. Attualmente questa opzione consente solo la connessione a un account di accesso. Non è possibile mappare una credenziale all'account di accesso di sa.SID = sid
Si applica solo agli account di accesso di SQL Server. Specifica il GUID del nuovo account di accesso di SQL Server. Se questa opzione è inclusa, SQL Server assegna un GUID automaticamente.DEFAULT_DATABASE **=**database
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
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 solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza delle password devono essere imposti in questo account di accesso. Il valore predefinito è OFF.CHECK_POLICY = { ON | OFF }
Si applica solo agli account di accesso di SQL Server. Specifica che i criteri delle password di Windows del computer in cui è in esecuzione SQL Server devono essere imposti per questo account di accesso. Il valore predefinito è ON.WINDOWS
Specifica che l'account di accesso deve essere mappato a un account di accesso di Windows.CERTIFICATE certname
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
Specifica il nome di una chiave asimmetrica da associare a questo account di accesso. Questa chiave deve essere già presente nel database master.
Osservazioni
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 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 codice e 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 esiste già nel database master.
Per uno script con cui trasferire di account di accesso, vedere Come trasferire gli account di accesso e le password tra istanze di SQL Server 2005 e SQL Server 2008.
Autorizzazioni
È richiesta l'autorizzazione ALTER ANY LOGIN nel server o l'appartenenza al ruolo predefinito del server securityadmin.
Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL nel server.
Esempi
A. Creazione di un account di accesso con una password
Nell'esempio seguente viene creato un account di accesso per un ID utente specifico e viene assegnata una password. L'opzione MUST_CHANGE richiede all'utente di modificare questa password alla prima connessione al server.
CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO
B. Creazione di un account di accesso mappato a una credenziale
Nell'esempio seguente viene creato l'account di accesso per utente specifico, utilizzando il relativo ID. Questo account di accesso viene mappato alla credenziale .
CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>',
CREDENTIAL = <credentialName>;
GO
C. Creazione di un account di accesso da un certificato
Nell'esempio seguente viene creato un account di accesso per un ID utente specifico da un certificato nel database master.
USE MASTER;
CREATE CERTIFICATE <certificateName>
WITH SUBJECT = '<loginName> certificate in master database',
EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO
D. 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.
CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
GO
Vedere anche