CREATE LOGIN (Transact-SQL)CREATE LOGIN (Transact-SQL)

Crea un account di accesso per SQL Server, il database SQL, SQL Data Warehouse o i database della piattaforma di strumenti analitici.Creates a login for SQL Server, SQL Database, SQL Data Warehouse, or Analytics Platform System databases. Fare clic su una delle seguenti schede per la sintassi, gli argomenti, i commenti, le autorizzazioni e gli esempi per una versione particolare.Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular version.

CREATE LOGIN partecipa nelle transazioni.CREATE LOGIN participates in transactions. Se si esegue CREATE LOGIN all'interno di una transazione di cui viene eseguito il rollback, la creazione dell'account di accesso viene sottoposta a rollback.If CREATE LOGIN is executed within a transaction and the transaction is rolled back, then login creation is rolled back. Se si esegue all'interno di una transazione, l'account di accesso creato può essere usato solo dopo il commit della transazione.If executed within a transaction, the created login cannot be used until the transaction is committed.

Per altre informazioni sulle convenzioni di sintassi, vedere Convenzioni della sintassi Transact-SQL.For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

Fare clic su un prodotto.Click a product!

Nella riga seguente fare clic su qualsiasi nome di prodotto.In the following row, click whichever product name you are interested in. Verrà visualizzato un contenuto diverso in questa pagina Web, appropriato per il prodotto su cui si fa clic.The click displays different content here on this webpage, appropriate for whichever product you click.

* SQL Server *  * SQL Server *   Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

SQL ServerSQL Server

SintassiSyntax

-- Syntax for SQL Server
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

ArgomentiArguments

login_name specifica il nome dell'account di accesso creato.login_name Specifies the name of the login that is created. Esistono quattro tipi di account di accesso: account di accesso di SQL Server, account di accesso di Windows, account di accesso con mapping a un certificato e account di accesso con mapping a una chiave asimmetrica.There are four types of logins: SQL Server logins, Windows logins, certificate-mapped logins, and asymmetric key-mapped logins. Quando si creano account di accesso che vengono mappati da un account di dominio di Windows, è necessario usare il nome di accesso utente precedente a Windows 2000 nel formato [<NomeDominio>\<nome_account_accesso>].When you are creating logins that are mapped from a Windows domain account, you must use the pre-Windows 2000 user logon name in the format [<domainName>\<login_name>]. Non è possibile usare un nome UPN nel formato login_name@DomainName.You cannot use a UPN in the format login_name@DomainName. Vedere l'esempio D più avanti in questo articolo.For an example, see example D later in this article. Gli account di accesso di autenticazione sono di tipo sysname e devono essere conformi alle regole per gli Identificatori e non possono contenere un simbolo " \ ".Authentication logins are type sysname and must conform to the rules for Identifiers and cannot contain a '\'. Gli account di accesso di Windows possono contenere un simbolo " \ ".Windows logins can contain a '\'. I nomi degli account di accesso basati su utenti di Active Directory devono avere un numero di caratteri inferiore a 21.Logins based on Active Directory users, are limited to names of fewer than 21 characters.

PASSWORD = 'password' Si applica solo agli account di accesso di SQL Server.PASSWORD ='password' Applies to SQL Server logins only. Specifica la password per l'account di accesso che viene creato.Specifies the password for the login that is being created. Usare una password complessa.Use a strong password. Per altre informazioni, vedere Password complesse e Criteri password.For more information, see Strong Passwords and Password Policy. A partire da SQL Server 2012 (11.x), le informazioni relative alle password archiviate vengono calcolate usando l'algoritmo SHA-512 della password con salting.Beginning with SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive. Le password devono essere sempre composte da almeno otto caratteri e non possono superare i 128 caratteri.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Le password possono includere i caratteri a-z, A-Z, 0-9 e la maggior parte dei caratteri non alfanumerici.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Le password non possono contenere virgolette singole o il valore di login_name.Passwords cannot contain single quotes, or the login_name.

PASSWORD = hashed_password si applica solo alle parole chiave HASHED.PASSWORD = hashed_password Applies to the HASHED keyword only. Specifica il valore hash della password per l'account di accesso in fase di creazione.Specifies the hashed value of the password for the login that is being created.

HASHED Si applica solo agli account di accesso SQL Server.HASHED Applies to SQL Server logins only. Specifica che è già stato eseguito l'hashing per la password immessa dopo l'argomento PASSWORD.Specifies that the password entered after the PASSWORD argument is already hashed. Se questa opzione non è selezionata, viene generato l'hash della stringa immessa come password prima che questa venga archiviata nel database.If this option is not selected, the string entered as password is hashed before it is stored in the database. Questa opzione deve essere utilizzata solo per la migrazione dei database da un server a un altro.This option should only be used for migrating databases from one server to another. Non utilizzare l'opzione HASHED per creare nuovi account di accesso.Do not use the HASHED option to create new logins. L'opzione HASHED non può essere usata con hash creati da SQL 7 o versioni precedenti.The HASHED option cannot be used with hashes created by SQL 7 or earlier.

MUST_CHANGE Si applica solo agli account di accesso SQL Server.MUST_CHANGE Applies to SQL Server logins only. Se questa opzione è inclusa, in SQL Server viene richiesto all'utente di immettere una nuova password al primo uso del nuovo account di accesso.If this option is included, SQL Server prompts the user for a new password the first time the new login is used.

CREDENTIAL = credential_name è il nome della credenziale di cui eseguire il mapping al nuovo account di accesso di SQL Server.CREDENTIAL =credential_name The name of a credential to be mapped to the new SQL Server login. La credenziale deve già esistere nel server.The credential must already exist in the server. Attualmente questa opzione consente solo di connettere la credenziale a un account di accesso.Currently this option only links the credential to a login. Non è possibile eseguire il mapping di una credenziale all'account di accesso dell'amministratore di sistema.A credential cannot be mapped to the System Administrator (sa) login.

SID = sid si usa per ricreare un account di accesso.SID = sid Used to recreate a login. Si applica solo agli account di accesso con autenticazione di SQL Server, non agli account di accesso con autenticazione di Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Specifica il SID del nuovo account di accesso con autenticazione di SQL Server.Specifies the SID of the new SQL Server authentication login. Se questa opzione non viene usata, SQL Server assegna un SID automaticamente.If this option is not used, SQL Server automatically assigns a SID. La struttura del SID dipende dalla versione di SQL Server.The SID structure depends on the SQL Server version. SID di account di accesso di SQL Server: valore letterale (binary(16) ) a 16 byte basato su un GUID.SQL Server login SID: a 16 byte (binary(16)) literal value based on a GUID. Ad esempio, SID = 0x14585E90117152449347750164BA00A7.For example, SID = 0x14585E90117152449347750164BA00A7.

DEFAULT_DATABASE = database specifica il database predefinito da assegnare all'account di accesso.DEFAULT_DATABASE =database Specifies the default database to be assigned to the login. Se questa opzione non è inclusa, il database predefinito viene impostato su master.If this option is not included, the default database is set to master.

DEFAULT_DATABASE = language specifica la lingua predefinita da assegnare all'account di accesso.DEFAULT_LANGUAGE =language Specifies the default language to be assigned to the login. Se questa opzione non è inclusa, la lingua predefinita viene impostata sulla lingua predefinita corrente del server.If this option is not included, the default language is set to the current default language of the server. Se la lingua predefinita del server viene modificata in seguito, la lingua predefinita dell'account di accesso rimane inalterata.If the default language of the server is later changed, the default language of the login remains unchanged.

CHECK_EXPIRATION = { ON | OFF } si applica solo agli account di accesso di SQL Server.CHECK_EXPIRATION = { ON | OFF } Applies to SQL Server logins only. Specifica se i criteri di scadenza delle password devono essere applicati a questo account di accesso.Specifies whether password expiration policy should be enforced on this login. Il valore predefinito è OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } si applica solo agli account di accesso di SQL Server.CHECK_POLICY = { ON | OFF } Applies to SQL Server logins only. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL Server devono essere applicati a questo account di accesso.Specifies that the Windows password policies of the computer on which SQL Server is running should be enforced on this login. Il valore predefinito è ON.The default value is ON.

Se i criteri di Windows richiedono password complesse, queste devono contenere almeno tre dei quattro caratteri seguenti:If the Windows policy requires strong passwords, passwords must contain at least three of the following four characteristics:

  • Un carattere maiuscolo (A-Z).An uppercase character (A-Z).
  • Un carattere minuscolo (a-z)A lowercase character (a-z).
  • Una cifra (0-9).A digit (0-9).
  • Un carattere non alfanumerico, ad esempio uno spazio, _, @, *, ^, %, !, $, # o &.One of the non-alphanumeric characters, such as a space, _, @, *, ^, %, !, $, #, or &.

WINDOWS specifica che l'account di accesso deve associato a un account di accesso di Windows.WINDOWS Specifies that the login be mapped to a Windows login.

CERTIFICATE certname specifica il nome di un certificato da associare a questo account di accesso.CERTIFICATE certname Specifies the name of a certificate to be associated with this login. Questo certificato deve essere già presente nel database master.This certificate must already occur in the master database.

ASYMMETRIC KEY asym_key_name specifica il nome di una chiave asimmetrica da associare a questo account di accesso.ASYMMETRIC KEY asym_key_name Specifies the name of an asymmetric key to be associated with this login. Questa chiave deve essere già presente nel database master.This key must already occur in the master database.

RemarksRemarks

  • Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.
  • L'uso di password con hashing già eseguito è supportato solo quando si creano gli account di accesso di SQL Server.Prehashing of passwords is supported only when you are creating SQL Server logins.
  • Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. In caso contrario, l'istruzione non verrà eseguita correttamente.Otherwise, the statement will fail.
  • Una combinazione di CHECK_POLICY = OFF e CHECK_EXPIRATION = ON non è supportata.A combination of CHECK_POLICY = OFF and CHECK_EXPIRATION = ON is not supported.
  • Quando l'opzione CHECK_POLICY è impostata su OFF, il valore di lockout_time viene reimpostato e l'opzione CHECK_EXPIRATION viene impostata su OFF.When CHECK_POLICY is set to OFF, lockout_time is reset and CHECK_EXPIRATION is set to OFF.

Importante

CHECK_EXPIRATION e CHECK_POLICY sono imposte solo in Windows Server 2003 e versioni successive.CHECK_EXPIRATION and CHECK_POLICY are only enforced on Windows Server 2003 and later. Per ulteriori informazioni, vedere Password Policy.For more information, see Password Policy.

  • Gli account di accesso creati da certificati o chiavi asimmetriche vengono utilizzati solo per la firma del codiceLogins created from certificates or asymmetric keys are used only for code signing. e non possono essere usati per la connessione a SQL Server.They cannot be used to connect to 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.You can create a login from a certificate or asymmetric key only when the certificate or asymmetric key already exists in master.
  • Per uno script con cui trasferire gli account di accesso, vedere Trasferimento di accessi e password tra istanze di SQL Server.For a script to transfer logins, see How to transfer the logins and the passwords between instances of SQL Server 2005 and 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.Creating a login automatically enables the new login and grants the login the server level CONNECT SQL permission.
  • La modalità di autenticazione del server deve corrispondere al tipo di account di accesso per consentire l'accesso.The server's authentication mode must match the login type to permit access.
  • Per informazioni sulla progettazione di un sistema di autorizzazioni, vedere Introduzione alle autorizzazioni del motore di database.For information about designing a permissions system, see Getting Started with Database Engine Permissions.

AutorizzazioniPermissions

  • Solo gli utenti con autorizzazione ALTER ANY LOGIN per il server o appartenenza al ruolo predefinito del server securityadmin possono creare account di accesso.Only users with ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role can create logins. Per altre informazioni, vedere Ruoli a livello di server e ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.
  • Se viene usata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL nel server.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission on the server.

Dopo la creazione di un account di accessoAfter creating a login

Una volta creato, un account di accesso può connettersi a SQL Server ma ha solo le autorizzazioni concesse al ruolo public.After creating a login, the login can connect to SQL Server, but only has the permissions granted to the public role. Provare a eseguire alcune delle attività seguenti.Consider performing some of the following activities.

  • Per connettersi a un database, creare un utente del database per l'account di accesso.To connect to a database, create a database user for the login. Per altre informazioni, vedere CREATE USER.For more information, see CREATE USER.
  • Creare un ruolo del server definito dall'utente tramite CREATE SERVER ROLE.Create a user-defined server role by using CREATE SERVER ROLE. Usare ALTER SERVER ROLE ... ADD MEMBER per aggiungere il nuovo account di accesso al ruolo del server definito dall'utente.Use ALTER SERVER ROLE ... ADD MEMBER to add the new login to the user-defined server role. Per altre informazioni, vedere CREATE SERVER ROLE e ALTER SERVER ROLE.For more information, see CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Usare sp_addsrvrolemember per aggiungere l'account di accesso a un ruolo predefinito del server.Use sp_addsrvrolemember to add the login to a fixed server role. Per altre informazioni, vedere Ruoli a livello di Server e sp_addsrvrolemember.For more information, see Server-Level Roles and sp_addsrvrolemember.
  • Usare l'istruzione GRANT per concedere le autorizzazioni a livello di server al nuovo account di accesso o a un ruolo in cui esso è contenuto.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Per altre informazioni, vedere GRANT.For more information, see GRANT.

EsempiExamples

A.A. Creazione di un account di accesso con una passwordCreating a login with a password

Nell'esempio seguente viene creato un account di accesso per un utente specifico e viene assegnata una password.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Creazione di un account di accesso con una password da modificareCreating a login with a password that must be changed

Nell'esempio seguente viene creato un account di accesso per un utente specifico e viene assegnata una password.The following example creates a login for a particular user and assigns a password. L'opzione MUST_CHANGE richiede all'utente di modificare questa password alla prima connessione al server.The MUST_CHANGE option requires users to change this password the first time they connect to the server.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2019SQL Server 2019.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>'
    MUST_CHANGE, CHECK_EXPIRATION = ON;
GO

Nota

Impossibile utilizzare l'opzione MUST_CHANGE se CHECK_EXPIRATION è impostato su OFF.The MUST_CHANGE option cannot be used when CHECK_EXPIRATION is OFF.

C.C. Creazione di un account di accesso sul quale viene eseguito il mapping a una credenzialeCreating a login mapped to a credential

Nell'esempio seguente viene creato l'account di accesso per utente specifico, utilizzando il relativo nome.The following example creates the login for a particular user, using the user. Su questo account di accesso viene eseguito il mapping alla credenziale.This login is mapped to the credential.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2019SQL Server 2019.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>',
    CREDENTIAL = <credentialName>;
GO

D.D. Creazione di un account di accesso da un certificatoCreating a login from a certificate

Nell'esempio seguente viene creato un account di accesso per un utente specifico da un certificato nel database master.The following example creates login for a particular user from a certificate in master.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2019SQL Server 2019.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.

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.E. Creazione di un account di accesso da un account di dominio di WindowsCreating a login from a Windows domain account

Nell'esempio seguente viene creato un account di accesso da un account di dominio di Windows.The following example creates a login from a Windows domain account.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2019SQL Server 2019.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.

CREATE LOGIN [<domainName>\<login_name>] FROM WINDOWS;
GO

F.F. Creazione di un account di accesso da un SIDCreating a login from a SID

L'esempio seguente crea prima un account di accesso con autenticazione di SQL Server e determina il SID dell'account di accesso.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La query restituisce 0x241C11948AEEB749B0D22646DB1A19F2 come SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La query dell'utente restituirà un valore diverso.Your query will return a different value. Le istruzioni seguenti eliminano l'account di accesso e quindi ricreano l'account di accesso.The following statements delete the login, and then recreate the login. Utilizzare il SID della query precedente.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Vedere ancheSee Also

SQL ServerSQL Server *Database singolo/pool elastico
database SQL*
* SQL Database
single database/elastic pool *
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

Database singolo/pool elastico di database SQL di AzureAzure SQL Database single database/elastic pool

SintassiSyntax

-- Syntax for Azure SQL Database
CREATE LOGIN login_name
 { WITH <option_list> }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

ArgomentiArguments

login_name specifica il nome dell'account di accesso creato.login_name Specifies the name of the login that is created. Database singolo/pool elastico di database SQL di Azure supporta solo account di accesso SQL.Azure SQL Database single database/elastic pool supports only SQL logins.

PASSWORD =' password* ' specifica la password per l'account di accesso SQL da creare.PASSWORD =' password*' Specifies the password for the SQL login that is being created. Usare una password complessa.Use a strong password. Per altre informazioni, vedere Password complesse e Criteri password.For more information, see Strong Passwords and Password Policy. A partire da SQL Server 2012 (11.x)SQL Server 2012 (11.x), le informazioni relative alle password archiviate vengono calcolate tramite SHA-512 della password salt.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive. Le password devono essere sempre composte da almeno otto caratteri e non possono superare i 128 caratteri.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Le password possono includere i caratteri a-z, A-Z, 0-9 e la maggior parte dei caratteri non alfanumerici.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Le password non possono contenere virgolette singole o il valore di login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid si usa per ricreare un account di accesso.SID = sid Used to recreate a login. Si applica solo agli account di accesso con autenticazione di SQL Server, non agli account di accesso con autenticazione di Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Specifica il SID del nuovo account di accesso con autenticazione di SQL Server.Specifies the SID of the new SQL Server authentication login. Se questa opzione non viene usata, SQL Server assegna un SID automaticamente.If this option is not used, SQL Server automatically assigns a SID. La struttura del SID dipende dalla versione di SQL Server.The SID structure depends on the SQL Server version. Per il database SQL, si tratta in genere di un valore letterale (binary(32) ) a 32 byte costituito da 0x01060000000000640000000000000000 e 16 byte che rappresentano un GUID.For SQL Database, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Ad esempio, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

RemarksRemarks

Account di accessoLogin

Account di accesso al database SQLSQL Database Logins

L'istruzione CREATE LOGIN deve essere l'unica istruzione in un batch.The CREATE LOGIN statement must be the only statement in a batch.

In alcuni metodi di connessione al database SQL, come ad esempio sqlcmd, è necessario accodare il nome del server del database SQL al nome dell'account di accesso nella stringa di connessione usando la notazione <login> @ <server> .In some methods of connecting to SQL Database, such as sqlcmd, you must append the SQL Database server name to the login name in the connection string by using the <login>@<server> notation. Ad esempio, se l'account di accesso è login1 e il nome completo del server del database SQL è servername.database.windows.net, il parametro username della stringa di connessione deve essere login1@servername.For example, if your login is login1 and the fully qualified name of the SQL Database server is servername.database.windows.net, the username parameter of the connection string should be login1@servername. Poiché la lunghezza totale del parametro username è di 128 caratteri, login_name è limitato a 127 caratteri meno la lunghezza del nome del server.Because the total length of the username parameter is 128 characters, login_name is limited to 127 characters minus the length of the server name. Nell'esempio la lunghezza di login_name può essere solo di 117 caratteri poiché servername è costituito da 10 caratteri.In the example, login_name can only be 117 characters long because servername is 10 characters.

Nel database SQL è necessario essere connessi al database master per creare un account di accesso.In SQL Database, you must be connected to the master database to create a login.

Le regole di SQL Server consentono di creare un account di accesso con autenticazione di SQL Server nel formato <nomeaccountaccesso>@<nomeserver>.SQL Server rules allow you create a SQL Server authentication login in the format <loginname>@<servername>. Se il server del Database SQLSQL Database in uso è myazureserver e l'account di accesso è **myemail@live.com** , l'account di accesso deve essere specificato nel formato **myemail@live.com@myazureserver** .If your Database SQLSQL Database server is myazureserver and your login is **myemail@live.com**, then you must supply your login as **myemail@live.com@myazureserver**.

Nel database SQL i dati dell'account di accesso necessari per autenticare una connessione e le regole del firewall a livello di server vengono memorizzati temporaneamente nella cache in ogni database.In SQL Database, login data required to authenticate a connection and server-level firewall rules is temporarily cached in each database. Questa cache viene aggiornata periodicamente.This cache is periodically refreshed. Per forzare un aggiornamento della cache di autenticazione e assicurarsi che un database abbia la versione più recente della tabella di account di accesso, eseguire DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

Per altre informazioni sugli account di accesso del database SQL, vedere Gestione di database e account di accesso in Database SQL di Azure.For more information about SQL Database logins, see Managing Databases and Logins in Azure SQL Database.

AutorizzazioniPermissions

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.Only the server-level principal login (created by the provisioning process) or members of the loginmanager database role in the master database can create new logins. Per altre informazioni, vedere Ruoli a livello di server e ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

LoginsLogins

  • È richiesta l'autorizzazione ALTER ANY LOGIN per il server o l'appartenenza al ruolo predefinito del server securityadmin.Must have ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role. È possibile eseguire il comando solo dall'account di Azure Active Directory (Azure AD) con l'autorizzazione ALTER ANY LOGIN per il server o l'appartenenza al ruolo con autorizzazione securityadminOnly Azure Active Directory (Azure AD) account with ALTER ANY LOGIN permission on the server or membership in the securityadmin permission can execute this command
  • È necessario essere un membro di Azure AD all'interno della stessa directory usata per il server di database SQL di AzureMust be a member of Azure AD within the same directory used for Azure SQL Database server

Dopo la creazione di un account di accessoAfter creating a login

Una volta creato, un account di accesso può connettersi al database SQL ma ha solo le autorizzazioni concesse al ruolo public.After creating a login, the login can connect to SQL Database but only has the permissions granted to the public role. Provare a eseguire alcune delle attività seguenti.Consider performing some of the following activities.

  • Per connettersi a un database, creare un utente del database per accedere al database stesso.To connect to a database, create a database user for the login in that database. Per altre informazioni, vedere CREATE USER.For more information, see CREATE USER.
  • Per concedere le autorizzazioni a un utente in un database, usare l'istruzione ALTER SERVER ROLE ... ADD MEMBER per aggiungere l'utente a uno dei ruoli predefiniti del database o a un ruolo personalizzato o concedere le autorizzazioni all'utente direttamente tramite l'istruzione GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Per altre informazioni, vedere Utenti non amministratori, Ruoli amministrativi aggiuntivi a livello di server, ALTER SERVER ROLE e l'istruzione GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.
  • Per concedere autorizzazioni a livello di server, creare un utente del database nel database master e usare l'istruzione ALTER SERVER ROLE ... ADD MEMBER per aggiungere l'utente a uno dei ruoli di amministrazione del server.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Per altre informazioni, vedere Ruoli a livello di server, ALTER SERVER ROLE e Ruoli del server.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.
  • Usare l'istruzione GRANT per concedere le autorizzazioni a livello di server al nuovo account di accesso o a un ruolo in cui esso è contenuto.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Per altre informazioni, vedere GRANT.For more information, see GRANT.

EsempiExamples

A.A. Creazione di un account di accesso con una passwordCreating a login with a password

Nell'esempio seguente viene creato un account di accesso per un utente specifico e viene assegnata una password.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Creazione di un account di accesso da un SIDCreating a login from a SID

L'esempio seguente crea prima un account di accesso con autenticazione di SQL Server e determina il SID dell'account di accesso.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La query restituisce 0x241C11948AEEB749B0D22646DB1A19F2 come SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La query dell'utente restituirà un valore diverso.Your query will return a different value. Le istruzioni seguenti eliminano l'account di accesso e quindi ricreano l'account di accesso.The following statements delete the login, and then recreate the login. Utilizzare il SID della query precedente.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
* Istanza gestita
database SQL*
* SQL Database
managed instance *
SQL Data
Warehouse
SQL Data
Warehouse
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

Istanza gestita di database SQL di AzureAzure SQL Database managed instance

SintassiSyntax

-- Syntax for Azure SQL Database managed instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER] { WITH <option_list> [,..]}

<option_list> ::=
    PASSWORD = {'password'}
    | SID = sid
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

ArgomentiArguments

login_name: se usato con la clausola FROM EXTERNAL PROVIDER, l'account di accesso specifica l'entità di Azure Active Directory (AD), ovvero un utente, un gruppo o un'applicazione di Azure Active Directory.login_name When used with the FROM EXTERNAL PROVIDER clause, the login specifies the Azure Active Directory (AD) Principal, which is an Azure AD user, group, or application. In caso contrario, l'account di accesso rappresenta il nome dell'account di accesso SQL creato.Otherwise, the login represents the name of the SQL login that was created.

FROM EXTERNAL PROVIDERFROM EXTERNAL PROVIDER
Specifica che l'account di accesso è per il servizio Autenticazione di Azure AD.Specifies that the login is for Azure AD Authentication.

PASSWORD = 'password' specifica la password per l'account di accesso SQL da creare.PASSWORD = 'password' Specifies the password for the SQL login that is being created. Usare una password complessa.Use a strong password. Per altre informazioni, vedere Password complesse e Criteri password.For more information, see Strong Passwords and Password Policy. A partire da SQL Server 2012 (11.x)SQL Server 2012 (11.x), le informazioni relative alle password archiviate vengono calcolate tramite SHA-512 della password salt.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive. Le password devono essere sempre composte da almeno otto caratteri e non possono superare i 128 caratteri.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Le password possono includere i caratteri a-z, A-Z, 0-9 e la maggior parte dei caratteri non alfanumerici.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Le password non possono contenere virgolette singole o il valore di login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid si usa per ricreare l'account di accesso.SID = sid Used to recreate a login. Si applica solo agli account di accesso per l'autenticazione di SQL Server.Applies to SQL Server authentication logins only. Specifica il SID del nuovo account di accesso con autenticazione di SQL Server.Specifies the SID of the new SQL Server authentication login. Se questa opzione non viene usata, SQL Server assegna un SID automaticamente.If this option is not used, SQL Server automatically assigns a SID. La struttura del SID dipende dalla versione di SQL Server.The SID structure depends on the SQL Server version. Per il database SQL, si tratta in genere di un valore letterale (binary(32) ) a 32 byte costituito da 0x01060000000000640000000000000000 e 16 byte che rappresentano un GUID.For SQL Database, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Ad esempio, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

RemarksRemarks

  • Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

  • È stata introdotta una nuova sintassi per la creazione di entità di livello server mappate agli account Azure AD (FROM EXTERNAL PROVIDER)New syntax is introduced for the creation of server-level principals mapped to Azure AD accounts (FROM EXTERNAL PROVIDER)

  • Quando si specifica FROM EXTERNAL PROVIDER:When FROM EXTERNAL PROVIDER is specified:

    • login_name deve rappresentare un account Azure AD esistente (utente, gruppo o applicazione) accessibile in Azure AD dall'istanza gestita di SQL di Azure corrente.The login_name must represent an existing Azure AD account (user, group, or application) that is accessible in Azure AD by the current Azure SQL managed instance. Per le entità di sicurezza di Azure AD, la sintassi CREATE LOGIN richiede:For Azure AD principals, the CREATE LOGIN syntax requires:
      • UserPrincipalName dell'oggetto di Azure AD per utenti di Azure AD.UserPrincipalName of the Azure AD object for Azure AD Users.
      • DisplayName dell'oggetto di Azure AD per i gruppi di Azure AD e le applicazioni di Azure AD.DisplayName of Azure AD object for Azure AD Groups and Azure AD Applications.
    • Non è possibile usare l'opzione PASSWORD.The PASSWORD option cannot be used.
  • Per impostazione predefinita, quando la clausola FROM EXTERNAL PROVIDER viene omessa, verrà creato un normale account di accesso SQL.By default, when the FROM EXTERNAL PROVIDER clause is omitted, a regular SQL login is created.

  • Gli account di accesso di Azure AD sono visibili in sys.server_principals con il valore type column impostato su E e type_desc impostato su EXTERNAL_LOGIN per gli account di accesso mappati ad utenti di Azure AD oppure con il valore type column impostato su X e il valore type_desc impostato su EXTERNAL_GROUP per gli account di accesso mappati a gruppi di Azure AD.Azure AD logins are visible in sys.server_principals, with type column value set to E and type_desc set to EXTERNAL_LOGIN for logins mapped to Azure AD users, or type column value set to X and type_desc value set to EXTERNAL_GROUP for logins mapped to Azure AD groups.

  • Per uno script con cui trasferire gli account di accesso, vedere Trasferimento di accessi e password tra istanze di SQL Server.For a script to transfer logins, see How to transfer the logins and the passwords between instances of SQL Server 2005 and 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.Creating a login automatically enables the new login and grants the login the server level CONNECT SQL permission.

Account di accesso e autorizzazioniLogins and Permissions

Solo l'account di accesso dell'entità di livello server (creato dal processo di provisioning) o i membri del ruolo del database securityadmin o sysadmin nel database master possono creare nuovi account di accesso.Only the server-level principal login (created by the provisioning process) or members of the securityadmin or sysadmin database role in the master database can create new logins. Per altre informazioni, vedere Ruoli a livello di server e ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

Per impostazione predefinita, l'autorizzazione standard concessa a un nuovo account di accesso di Azure AD nel database master è: CONNECT SQL e VIEW ANY DATABASE.By default, the standard permission granted to a newly created Azure AD login in master is: CONNECT SQL and VIEW ANY DATABASE.

Account di accesso dell'istanza gestita di database SQLSQL Database managed instance Logins

  • È richiesta l'autorizzazione ALTER ANY LOGIN nel server o l'appartenenza a uno dei ruoli predefiniti del server securityadmin o sysadmin.Must have ALTER ANY LOGIN permission on the server or membership in the one of the fixed server roles securityadmin or sysadmin. Il comando Create può essere eseguito solo da un account Azure Active Directory (Azure AD) con l'autorizzazione ALTER ANY LOGIN nel server o l'appartenenza a uno di questi ruoli.Only an Azure Active Directory (Azure AD) account with ALTER ANY LOGIN permission on the server or membership in one of those roles can execute the create command.
  • Se l'account di accesso è un'entità SQL, solo gli account di accesso inclusi nel ruolo sysadmin possono usare il comando Create per crearne altri per un account Azure AD.If the login is a SQL Principal, only logins that are part of the sysadmin role can use the create command to create logins for an Azure AD account.
  • Deve essere un membro di Azure AD all'interno della stessa directory usata per l'istanza gestita di SQL di Azure.Must be a member of Azure AD within the same directory used for Azure SQL managed instance.

Dopo la creazione di un account di accessoAfter creating a login

Nota

L'interfaccia di amministrazione di Azure AD per il funzionamento delle istanze gestite dopo la creazione è stata modificata.The Azure AD admin for managed instance functionality after creation has changed. Per altre informazioni, vedere Nuova funzionalità di amministrazione di Azure per MI.For more information, see New Azure AD admin functionality for MI.

Una volta creato, un account di accesso può connettersi a un'istanza gestita di database SQL, ma ha solo le autorizzazioni concesse al ruolo public.After creating a login, the login can connect to a SQL Database managed instance, but only has the permissions granted to the public role. Provare a eseguire alcune delle attività seguenti.Consider performing some of the following activities.

  • Per creare un utente di Azure AD da un account di accesso di Azure AD, vedere CREATE USER.To create an Azure AD user from an Azure AD login, see CREATE USER.
  • Per concedere le autorizzazioni a un utente in un database, usare l'istruzione ALTER SERVER ROLE ... ADD MEMBER per aggiungere l'utente a uno dei ruoli predefiniti del database o a un ruolo personalizzato o concedere le autorizzazioni all'utente direttamente tramite l'istruzione GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Per altre informazioni, vedere Utenti non amministratori, Ruoli amministrativi aggiuntivi a livello di server, ALTER SERVER ROLE e l'istruzione GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.
  • Per concedere autorizzazioni a livello di server, creare un utente del database nel database master e usare l'istruzione ALTER SERVER ROLE ... ADD MEMBER per aggiungere l'utente a uno dei ruoli di amministrazione del server.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Per altre informazioni, vedere Ruoli a livello di server, ALTER SERVER ROLE e Ruoli del server.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.
    • Usare il comando seguente per aggiungere il ruolo sysadmin a un account di accesso di Azure AD: ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]Use the following command to add the sysadmin role to an Azure AD login: ALTER SERVER ROLE sysadmin ADD MEMBER [AzureAD_Login_name]
  • Usare l'istruzione GRANT per concedere le autorizzazioni a livello di server al nuovo account di accesso o a un ruolo in cui esso è contenuto.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Per altre informazioni, vedere GRANT.For more information, see GRANT.

LimitazioniLimitations

  • L'impostazione di un account di accesso di Azure AD mappato a un gruppo di Azure AD come proprietario del database non è supportata.Setting an Azure AD login mapped to an Azure AD group as the database owner is not supported.
  • La rappresentazione di entità di livello server di Azure AD tramite altre entità di Azure AD è supportata, ad esempio la clausola EXECUTE AS.Impersonation of Azure AD server-level principals using other Azure AD principals is supported, such as the EXECUTE AS clause.
  • Solo le entità di livello server SQL (account di accesso) incluse nel ruolo sysadmin possono eseguire le operazioni seguenti destinate a entità di Azure AD:Only SQL server-level principals (logins) that are part of the sysadmin role can execute the following operations targeting Azure AD principals:
    • EXECUTE AS USEREXECUTE AS USER
    • EXECUTE AS LOGINEXECUTE AS LOGIN
  • Gli utenti esterni (guest) importati da un'altra directory di Azure AD non possono essere configurati direttamente come amministratori di Azure AD per un'istanza gestita.External (guest) users imported from another Azure AD directory cannot be directly configured as an Azure AD admin for managed instance. È possibile invece aggiungere un utente esterno a un gruppo con sicurezza abilitata di Azure AD e configurare il gruppo come amministratore dell'istanza.Instead, join external user to an Azure AD security-enabled group and configure the group as the instance administrator.

EsempiExamples

A.A. Creazione di un account di accesso con una passwordCreating a login with a password

Nell'esempio seguente viene creato un account di accesso per un utente specifico e viene assegnata una password.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Creazione di un account di accesso da un SIDCreating a login from a SID

L'esempio seguente crea prima un account di accesso con autenticazione di SQL Server e determina il SID dell'account di accesso.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La query restituisce 0x241C11948AEEB749B0D22646DB1A19F2 come SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La query dell'utente restituirà un valore diverso.Your query will return a different value. Le istruzioni seguenti eliminano l'account di accesso e quindi ricreano l'account di accesso.The following statements delete the login, and then recreate the login. Utilizzare il SID della query precedente.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

C.C. Creazione di un account di accesso per un account Azure AD localeCreating a login for a local Azure AD account

Nell'esempio seguente viene creato un account di accesso per l'account Azure AD joe@myaad.onmicrosoft.com presente nell'istanza di Azure AD myaad.The following example creates a login for the Azure AD account joe@myaad.onmicrosoft.com that exists in the Azure AD of myaad.

CREATE LOGIN [joe@myaad.onmicrosoft.com] FROM EXTERNAL PROVIDER
GO

D.D. Creazione di un account di accesso per un account Azure AD federatoCreating a login for a federated Azure AD account

Nell'esempio seguente viene creato un account di accesso per l'account Azure AD federato bob@contoso.com presente nell'istanza di Azure AD denominata contoso.The following example creates a login for a federated Azure AD account bob@contoso.com that exists in the Azure AD called contoso. L'utente bob può anche essere un utente guest.User bob can also be a guest user.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

E.E. Creazione di un account di accesso per un gruppo di Azure ADCreating a login for an Azure AD group

Nell'esempio seguente viene creato un account di accesso per il gruppo di Azure AD mygroup presente nell'istanza di Azure AD myaadThe following example creates a login for the Azure AD group mygroup that exists in the Azure AD of myaad

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F.F. Creazione di un account di accesso per un'applicazione Azure ADCreating a login for an Azure AD application

Nell'esempio seguente viene creato un account di accesso per l'applicazione Azure AD myapp presente nell'istanza di Azure AD myaadThe following example creates a login for the Azure AD application myapp that exists in the Azure AD of myaad

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

G.G. Controllare i nuovi account di accesso aggiuntiCheck newly added logins

Per controllare i nuovi account di accesso aggiunti, eseguire il comando T-SQL seguente:To check the newly added login, execute the following T-SQL command:

SELECT *
FROM sys.server_principals;
GO

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
* SQL Data
Warehouse *
* SQL Data
Warehouse *
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

Azure SQL Data WarehouseAzure SQL Data Warehouse

SintassiSyntax

-- Syntax for Azure SQL Data Warehouse
CREATE LOGIN login_name
 { WITH <option_list> }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

ArgomentiArguments

login_name specifica il nome dell'account di accesso creato.login_name Specifies the name of the login that is created. Il database SQL di Azure supporta solo gli account di accesso SQL.Azure SQL Database supports only SQL logins.

PASSWORD =' password* ' specifica la password per l'account di accesso SQL da creare.PASSWORD =' password*' Specifies the password for the SQL login that is being created. Usare una password complessa.Use a strong password. Per altre informazioni, vedere Password complesse e Criteri password.For more information, see Strong Passwords and Password Policy. A partire da SQL Server 2012 (11.x)SQL Server 2012 (11.x), le informazioni relative alle password archiviate vengono calcolate tramite SHA-512 della password salt.Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive. Le password devono essere sempre composte da almeno otto caratteri e non possono superare i 128 caratteri.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Le password possono includere i caratteri a-z, A-Z, 0-9 e la maggior parte dei caratteri non alfanumerici.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Le password non possono contenere virgolette singole o il valore di login_name.Passwords cannot contain single quotes, or the login_name.

SID = sid si usa per ricreare un account di accesso.SID = sid Used to recreate a login. Si applica solo agli account di accesso con autenticazione di SQL Server, non agli account di accesso con autenticazione di Windows.Applies to SQL Server authentication logins only, not Windows authentication logins. Specifica il SID del nuovo account di accesso con autenticazione di SQL Server.Specifies the SID of the new SQL Server authentication login. Se questa opzione non viene usata, SQL Server assegna un SID automaticamente.If this option is not used, SQL Server automatically assigns a SID. La struttura del SID dipende dalla versione di SQL Server.The SID structure depends on the SQL Server version. Per SQL Data Warehouse, si tratta in genere di un valore letterale (binary(32) ) a 32 byte costituito da 0x01060000000000640000000000000000 e 16 byte che rappresentano un GUID.For SQL Data Warehouse, this is a 32 byte (binary(32)) literal consisting of 0x01060000000000640000000000000000 plus 16 bytes representing a GUID. Ad esempio, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.For example, SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

RemarksRemarks

LoginsLogins

L'istruzione CREATE LOGIN deve essere l'unica istruzione in un batch.The CREATE LOGIN statement must be the only statement in a batch.

In alcuni metodi di connessione a SQL Data Warehouse, come ad esempio sqlcmd, è necessario accodare il nome del server SQL Data Warehouse al nome dell'account di accesso nella stringa di connessione usando la notazione <login> @ <server> .In some methods of connecting to SQL Data Warehouse, such as sqlcmd, you must append the SQL Data Warehouse server name to the login name in the connection string by using the <login>@<server> notation. Ad esempio, se l'account di accesso è login1 e il nome completo del server SQL Data Warehouse è servername.database.windows.net, il parametro username della stringa di connessione deve essere login1@servername.For example, if your login is login1 and the fully qualified name of the SQL Data Warehouse server is servername.database.windows.net, the username parameter of the connection string should be login1@servername. Poiché la lunghezza totale del parametro username è di 128 caratteri, login_name è limitato a 127 caratteri meno la lunghezza del nome del server.Because the total length of the username parameter is 128 characters, login_name is limited to 127 characters minus the length of the server name. Nell'esempio la lunghezza di login_name può essere solo di 117 caratteri poiché servername è costituito da 10 caratteri.In the example, login_name can only be 117 characters long because servername is 10 characters.

In SQL Data Warehouse è necessario essere connessi al database master per creare un account di accesso.In SQL Data Warehouse, you must be connected to the master database to create a login.

Le regole di SQL Server consentono di creare un account di accesso con autenticazione di SQL Server nel formato <nomeaccountaccesso>@<nomeserver>.SQL Server rules allow you create a SQL Server authentication login in the format <loginname>@<servername>. Se il server del Database SQLSQL Database in uso è myazureserver e l'account di accesso è **myemail@live.com** , l'account di accesso deve essere specificato nel formato **myemail@live.com@myazureserver** .If your Database SQLSQL Database server is myazureserver and your login is **myemail@live.com**, then you must supply your login as **myemail@live.com@myazureserver**.

In SQL Data Warehouse i dati dell'account di accesso necessari per autenticare una connessione e le regole del firewall a livello di server vengono memorizzati temporaneamente nella cache in ogni database.In SQL Data Warehouse, login data required to authenticate a connection and server-level firewall rules is temporarily cached in each database. Questa cache viene aggiornata periodicamente.This cache is periodically refreshed. Per forzare un aggiornamento della cache di autenticazione e assicurarsi che un database abbia la versione più recente della tabella di account di accesso, eseguire DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

Per altre informazioni sugli account di accesso di SQL Data Warehouse, vedere Gestione di database e account di accesso in Database SQL di Azure.For more information about SQL Data Warehouse logins, see Managing Databases and Logins in Azure SQL Database.

AutorizzazioniPermissions

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.Only the server-level principal login (created by the provisioning process) or members of the loginmanager database role in the master database can create new logins. Per altre informazioni, vedere Ruoli a livello di server e ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

Dopo la creazione di un account di accessoAfter creating a login

Una volta creato, un account di accesso può connettersi a SQL Data Warehouse ma ha solo le autorizzazioni concesse al ruolo public.After creating a login, the login can connect to SQL Data Warehouse but only has the permissions granted to the public role. Provare a eseguire alcune delle attività seguenti.Consider performing some of the following activities.

  • Per connettersi a un database, creare un utente del database per l'account di accesso.To connect to a database, create a database user for the login. Per altre informazioni, vedere CREATE USER.For more information, see CREATE USER.

  • Per concedere le autorizzazioni a un utente in un database, usare l'istruzione ALTER SERVER ROLE ... ADD MEMBER per aggiungere l'utente a uno dei ruoli predefiniti del database o a un ruolo personalizzato o concedere le autorizzazioni all'utente direttamente tramite l'istruzione GRANT.To grant permissions to a user in a database, use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the built-in database roles or a custom role, or grant permissions to the user directly using the GRANT statement. Per altre informazioni, vedere Utenti non amministratori, Ruoli amministrativi aggiuntivi a livello di server, ALTER SERVER ROLE e l'istruzione GRANT.For more information, see Non-administrator Roles, Additional server-level administrative roles, ALTER SERVER ROLE, and GRANT statement.

  • Per concedere autorizzazioni a livello di server, creare un utente del database nel database master e usare l'istruzione ALTER SERVER ROLE ... ADD MEMBER per aggiungere l'utente a uno dei ruoli di amministrazione del server.To grant server-wide permissions, create a database user in the master database and use the ALTER SERVER ROLE ... ADD MEMBER statement to add the user to one of the administrative server roles. Per altre informazioni, vedere Ruoli a livello di server, ALTER SERVER ROLE e Ruoli del server.For more information, see Server-Level Roles and ALTER SERVER ROLE, and Server roles.

  • Usare l'istruzione GRANT per concedere le autorizzazioni a livello di server al nuovo account di accesso o a un ruolo in cui esso è contenuto.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Per altre informazioni, vedere GRANT.For more information, see GRANT.

EsempiExamples

A.A. Creazione di un account di accesso con una passwordCreating a login with a password

Nell'esempio seguente viene creato un account di accesso per un utente specifico e viene assegnata una password.The following example creates a login for a particular user and assigns a password.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.B. Creazione di un account di accesso da un SIDCreating a login from a SID

L'esempio seguente crea prima un account di accesso con autenticazione di SQL Server e determina il SID dell'account di accesso.The following example first creates a SQL Server authentication login and determines the SID of the login.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

La query restituisce 0x241C11948AEEB749B0D22646DB1A19F2 come SID.My query returns 0x241C11948AEEB749B0D22646DB1A19F2 as the SID. La query dell'utente restituirà un valore diverso.Your query will return a different value. Le istruzioni seguenti eliminano l'account di accesso e quindi ricreano l'account di accesso.The following statements delete the login, and then recreate the login. Utilizzare il SID della query precedente.Use the SID from your previous query.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse
* Piattaforma di strumenti
analitici (PDW) *
* Analytics
Platform System (PDW) *

 

Sistema della piattaforma di analisiAnalytics Platform System

SintassiSyntax

-- Syntax for Analytics Platform System
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }

<option_list1> ::=
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list> [ ,... ] ]

<option_list> ::=
      CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}

ArgomentiArguments

login_name specifica il nome dell'account di accesso creato.login_name Specifies the name of the login that is created. Esistono quattro tipi di account di accesso: account di accesso di SQL Server, account di accesso di Windows, account di accesso con mapping a un certificato e account di accesso con mapping a una chiave asimmetrica.There are four types of logins: SQL Server logins, Windows logins, certificate-mapped logins, and asymmetric key-mapped logins. Quando si creano account di accesso che vengono mappati da un account di dominio di Windows, è necessario usare il nome di accesso utente precedente a Windows 2000 nel formato [<NomeDominio>\<nome_account_accesso>].When you are creating logins that are mapped from a Windows domain account, you must use the pre-Windows 2000 user logon name in the format [<domainName>\<login_name>]. Non è possibile usare un nome UPN nel formato login_name@DomainName.You cannot use a UPN in the format login_name@DomainName. Vedere l'esempio D più avanti in questo articolo.For an example, see example D later in this article. Gli account di accesso di autenticazione sono di tipo sysname e devono essere conformi alle regole per gli Identificatori e non possono contenere un simbolo " \ ".Authentication logins are type sysname and must conform to the rules for Identifiers and cannot contain a '\'. Gli account di accesso di Windows possono contenere un simbolo " \ ".Windows logins can contain a '\'. I nomi degli account di accesso basati su utenti di Active Directory devono avere un numero di caratteri inferiore a 21.Logins based on Active Directory users, are limited to names of fewer than 21 characters.

PASSWORD =' password' Si applica solo agli account di accesso SQL Server.PASSWORD ='password' Applies to SQL Server logins only. Specifica la password per l'account di accesso che viene creato.Specifies the password for the login that is being created. Usare una password complessa.Use a strong password. Per altre informazioni, vedere Password complesse e Criteri password.For more information, see Strong Passwords and Password Policy. A partire da SQL Server 2012 (11.x), le informazioni relative alle password archiviate vengono calcolate usando l'algoritmo SHA-512 della password con salting.Beginning with SQL Server 2012 (11.x), stored password information is calculated using SHA-512 of the salted password.

Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive. Le password devono essere sempre composte da almeno otto caratteri e non possono superare i 128 caratteri.Passwords should always be at least eight characters long, and cannot exceed 128 characters. Le password possono includere i caratteri a-z, A-Z, 0-9 e la maggior parte dei caratteri non alfanumerici.Passwords can include a-z, A-Z, 0-9, and most non-alphanumeric characters. Le password non possono contenere virgolette singole o il valore di login_name.Passwords cannot contain single quotes, or the login_name.

MUST_CHANGE Si applica solo agli account di accesso SQL Server.MUST_CHANGE Applies to SQL Server logins only. Se questa opzione è inclusa, in SQL Server viene richiesto all'utente di immettere una nuova password al primo uso del nuovo account di accesso.If this option is included, SQL Server prompts the user for a new password the first time the new login is used.

CHECK_EXPIRATION = { ON | OFF } si applica solo agli account di accesso di SQL Server.CHECK_EXPIRATION = { ON | OFF } Applies to SQL Server logins only. Specifica se i criteri di scadenza delle password devono essere applicati a questo account di accesso.Specifies whether password expiration policy should be enforced on this login. Il valore predefinito è OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } si applica solo agli account di accesso di SQL Server.CHECK_POLICY = { ON | OFF } Applies to SQL Server logins only. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL Server devono essere applicati a questo account di accesso.Specifies that the Windows password policies of the computer on which SQL Server is running should be enforced on this login. Il valore predefinito è ON.The default value is ON.

Se i criteri di Windows richiedono password complesse, queste devono contenere almeno tre dei quattro caratteri seguenti:If the Windows policy requires strong passwords, passwords must contain at least three of the following four characteristics:

  • Un carattere maiuscolo (A-Z).An uppercase character (A-Z).
  • Un carattere minuscolo (a-z)A lowercase character (a-z).
  • Una cifra (0-9).A digit (0-9).
  • Un carattere non alfanumerico, ad esempio uno spazio, _, @, *, ^, %, !, $, # o &.One of the non-alphanumeric characters, such as a space, _, @, *, ^, %, !, $, #, or &.

WINDOWS specifica che l'account di accesso deve associato a un account di accesso di Windows.WINDOWS Specifies that the login be mapped to a Windows login.

RemarksRemarks

  • Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.
  • Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. In caso contrario, l'istruzione non verrà eseguita correttamente.Otherwise, the statement will fail.
  • Una combinazione di CHECK_POLICY = OFF e CHECK_EXPIRATION = ON non è supportata.A combination of CHECK_POLICY = OFF and CHECK_EXPIRATION = ON is not supported.
  • Quando l'opzione CHECK_POLICY è impostata su OFF, il valore di lockout_time viene reimpostato e l'opzione CHECK_EXPIRATION viene impostata su OFF.When CHECK_POLICY is set to OFF, lockout_time is reset and CHECK_EXPIRATION is set to OFF.

Importante

CHECK_EXPIRATION e CHECK_POLICY sono imposte solo in Windows Server 2003 e versioni successive.CHECK_EXPIRATION and CHECK_POLICY are only enforced on Windows Server 2003 and later. Per ulteriori informazioni, vedere Password Policy.For more information, see Password Policy.

AutorizzazioniPermissions

Solo gli utenti con autorizzazione ALTER ANY LOGIN per il server o appartenenza al ruolo predefinito del server securityadmin possono creare account di accesso.Only users with ALTER ANY LOGIN permission on the server or membership in the securityadmin fixed server role can create logins. Per altre informazioni, vedere Ruoli a livello di server e ALTER SERVER ROLE.For more information, see Server-Level Roles and ALTER SERVER ROLE.

Dopo la creazione di un account di accessoAfter creating a login

Una volta creato, un account di accesso può connettersi a SQL Data Warehouse ma ha solo le autorizzazioni concesse al ruolo public.After creating a login, the login can connect to SQL Data Warehouse, but only has the permissions granted to the public role. Provare a eseguire alcune delle attività seguenti.Consider performing some of the following activities.

  • Per connettersi a un database, creare un utente del database per l'account di accesso.To connect to a database, create a database user for the login. Per altre informazioni, vedere CREATE USER.For more information, see CREATE USER.
  • Creare un ruolo del server definito dall'utente tramite CREATE SERVER ROLE.Create a user-defined server role by using CREATE SERVER ROLE. Usare ALTER SERVER ROLE ... ADD MEMBER per aggiungere il nuovo account di accesso al ruolo del server definito dall'utente.Use ALTER SERVER ROLE ... ADD MEMBER to add the new login to the user-defined server role. Per altre informazioni, vedere CREATE SERVER ROLE e ALTER SERVER ROLE.For more information, see CREATE SERVER ROLE and ALTER SERVER ROLE.
  • Usare sp_addsrvrolemember per aggiungere l'account di accesso a un ruolo predefinito del server.Use sp_addsrvrolemember to add the login to a fixed server role. Per altre informazioni, vedere Ruoli a livello di Server e sp_addsrvrolemember.For more information, see Server-Level Roles and sp_addsrvrolemember.
  • Usare l'istruzione GRANT per concedere le autorizzazioni a livello di server al nuovo account di accesso o a un ruolo in cui esso è contenuto.Use the GRANT statement, to grant server-level permissions to the new login or to a role containing the login. Per altre informazioni, vedere GRANT.For more information, see GRANT.

EsempiExamples

G.G. Creazione di un account di accesso di autenticazione di SQL Server con una passwordCreating a SQL Server authentication login with a password

Nell'esempio seguente viene creato l'account di accesso Mary7 con la password A2c3456.The following example creates the login Mary7 with password A2c3456.

CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;

H.H. Uso delle opzioniUsing Options

Nell'esempio seguente viene creato l'account di accesso Mary8 con password e alcuni degli argomenti facoltativi.The following example creates the login Mary8 with password and some of the optional arguments.

CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON;

I.I. Creazione di un account di accesso da un account di dominio di WindowsCreating a login from a Windows domain account

Nell'esempio seguente viene creato un account di accesso da un account di dominio di Windows denominato Mary nel dominio Contoso.The following example creates a login from a Windows domain account named Mary in the Contoso domain.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO

Vedere ancheSee Also