sp_addlogin (Transact-SQL)sp_addlogin (Transact-SQL)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Crea un nuovo account di accesso di SQL ServerSQL Server che consente a un utente di connettersi a un'istanza di SQL ServerSQL Server utilizzando l'autenticazione di SQL ServerSQL Server.Creates a new SQL ServerSQL Server login that allows a user to connect to an instance of SQL ServerSQL Server by using SQL ServerSQL Server authentication.

Importante

Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.Utilizzare CREATE LOGIN invece. Use CREATE LOGIN instead.

Importante

Se possibile, usare l'autenticazione di Windows.When possible, use Windows Authentication.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax


sp_addlogin [ @loginame = ] 'login'   
    [ , [ @passwd = ] 'password' ]   
    [ , [ @defdb = ] 'database' ]   
    [ , [ @deflanguage = ] 'language' ]   
    [ , [ @sid = ] sid ]   
    [ , [ @encryptopt = ] 'encryption_option' ]   
[;]  

ArgomentiArguments

[ @loginame=] 'accesso'[ @loginame= ] 'login'
Nome dell'account di accesso.Is the name of the login. account di accesso è sysname, non prevede alcun valore predefinito.login is sysname, with no default.

[ @passwd=] 'password'[ @passwd= ] 'password'
Password dell'account di accesso.Is the login password. password è sysname, con un valore predefinito è NULL.password is sysname, with a default of NULL.

Importante

Non usare una password vuota.Do not use a blank password. Usare una password complessa.Use a strong password.

[ @defdb=] 'database'[ @defdb= ] 'database'
Database predefinito dell'account di accesso, ovvero il primo database a cui viene connesso l'account dopo l'accesso.Is the default database of the login (the database to which the login is first connected after logging in). database è sysname, il valore predefinito è master.database is sysname, with a default of master.

[ @deflanguage=] 'language'[ @deflanguage= ] 'language'
Lingua predefinita dell'account di accesso.Is the default language of the login. lingua è sysname, con un valore predefinito è NULL.language is sysname, with a default of NULL. Se language non viene specificato, il valore predefinito language del nuovo account di accesso è impostato sulla lingua predefinita corrente del server.If language is not specified, the default language of the new login is set to the current default language of the server.

[ @sid=] 'sid'[ @sid= ] 'sid'
ID di sicurezza (SID, Security Identification Number).Is the security identification number (SID). SID è varbinary (16), con un valore predefinito è NULL.sid is varbinary(16), with a default of NULL. Se sid è NULL, il sistema genera un SID per il nuovo account di accesso.If sid is NULL, the system generates a SID for the new login. Nonostante l'uso di un varbinary il tipo di dati, valori diversi da NULL devono contenere esattamente 16 byte di lunghezza e non deve essere già presente.Despite the use of a varbinary data type, values other than NULL must be exactly 16 bytes in length, and must not already exist. Specifica di sid è utile, ad esempio, durante la creazione di script o lo spostamento SQL ServerSQL Server gli account di accesso da un server a un altro e si desidera che gli account di accesso abbia lo stesso SID in server diversi.Specifying sid is useful, for example, when you are scripting or moving SQL ServerSQL Server logins from one server to another and you want the logins to have the same SID on different servers.

[ @encryptopt=] 'encryption_option'[ @encryptopt= ] 'encryption_option'
Specifica se la password viene passata in forma non crittografata o come hash della password non crittografata.Specifies whether the password is passed in as clear text or as the hash of the clear text password. Si noti che non viene applicata alcuna crittografia.Note that no encryption takes place. Le parole "crittografia" ed "encryption" vengono utilizzate in questa descrizione per compatibilità con le versioni precedenti.The word "encrypt" is used in this discussion for the sake of backward compatibility. Se la password viene passata in forma non crittografata, per la password viene eseguito l'hashing.If a clear text password is passed in, it is hashed. Il valore hash viene archiviato.The hash is stored. encryption_option è varchar (20), e può essere uno dei valori seguenti.encryption_option is varchar(20), and can be one of the following values.

ValoreValue DescriptionDescription
NULLNULL La password viene passata in forma non crittografata.The password is passed in clear. Impostazione predefinita.This is the default.
della procedura skip_encryptionskip_encryption Per la password è già stato eseguito l'hashing.The password is already hashed. Motore di databaseDatabase Engine deve archiviare il valore senza ripetere l'hashing.The Motore di databaseDatabase Engine should store the value without re-hashing it.
procedura skip_encryption_oldskip_encryption_old Per la password specificata è stato eseguito l'hashing con una versione precedente di SQL ServerSQL Server.The supplied password was hashed by an earlier version of SQL ServerSQL Server. Motore di databaseDatabase Engine deve archiviare il valore senza ripetere l'hashing.The Motore di databaseDatabase Engine should store the value without re-hashing it. Questa opzione è disponibile solo in funzione delle operazioni di aggiornamento.This option is provided for upgrade purposes only.

Valori restituitiReturn Code Values

0 (esito positivo) o 1 (esito negativo)0 (success) or 1 (failure)

OsservazioniRemarks

I nomi degli account di accesso di SQL ServerSQL Server possono essere composti da 1 a 128 caratteri, inclusi lettere, simboli e numeri. SQL ServerSQL Server logins can contain from 1 to 128 characters, including letters, symbols, and numbers. Gli account di accesso non può contenere una barra rovesciata (\), un nome di accesso riservato, ad esempio sa o public, essere già esistenti oppure essere NULL o una stringa vuota ('').Logins cannot contain a backslash (\); be a reserved login name, for example sa or public, or already exist; or be NULL or an empty string ('').

Se viene specificato il nome di un database predefinito, è possibile connettersi a tale database senza eseguire l'istruzione USE.If the name of a default database is supplied, you can connect to the specified database without executing the USE statement. Tuttavia, è possibile utilizzare il database predefinito fino a quando non si concede l'accesso a tale database dal proprietario del database (tramite sp_adduser o sp_addrolemember) o sp_addrole.However, you cannot use the default database until you are given access to that database by the database owner (by using sp_adduser or sp_addrolemember) or sp_addrole.

Il numero SID è un GUID che identificherà in modo univoco l'account di accesso nel server.The SID number is a GUID that will uniquely identify the login in the server.

Se si modifica la lingua predefinita del server non viene modificata la lingua predefinita degli account di accesso esistenti.Changing the default language of the server does not change the default language of existing logins. Per modificare la lingua predefinita del server, utilizzare sp_configure.To change the default language of the server, use sp_configure.

Utilizzando della procedura skip_encryption esclusione password hash è utile se la password è già stato eseguito l'hashing quando l'account di accesso viene aggiunto a SQL ServerSQL Server.Using skip_encryption to suppress password hashing is useful if the password is already hashed when the login is added to SQL ServerSQL Server. Se è stato eseguito l'hashing della password da una versione precedente di SQL ServerSQL Server, utilizzare la procedura skip_encryption_old.If the password was hashed by an earlier version of SQL ServerSQL Server, use skip_encryption_old.

La stored procedure sp_addlogin non può essere eseguita in una transazione definita dall'utente.sp_addlogin cannot be executed within a user-defined transaction.

Nella tabella seguente sono elencate varie stored procedure utilizzate in combinazione con sp_addlogin.The following table shows several stored procedures that are used with sp_addlogin.

Stored procedureStored procedure DescriptionDescription
sp_grantloginsp_grantlogin Aggiunge un utente o un gruppo di Windows.Adds a Windows user or group.
sp_passwordsp_password Modifica la password di un utente.Changes the password of a user.
sp_defaultdbsp_defaultdb Modifica il database predefinito di un utente.Changes the default database of a user.
sp_defaultlanguagesp_defaultlanguage Modifica la lingua predefinita di un utente.Changes the default language of a user.

PermissionsPermissions

È richiesta l'autorizzazione ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

EsempiExamples

A.A. Creazione di un account di accesso di SQL ServerCreating a SQL Server login

Nell'esempio seguente viene creato un account di accesso di SQL ServerSQL Server per l'utente Victoria con la password B1r12-36, senza specificare un database predefinito.The following example creates a SQL ServerSQL Server login for the user Victoria, with a password of B1r12-36, without specifying a default database.

EXEC sp_addlogin 'Victoria', 'B1r12-36';  
GO  

B.B. Creazione di un account di accesso di SQL Server con un database predefinitoCreating a SQL Server login that has a default database

Nell'esempio seguente viene creato un account di accesso di SQL ServerSQL Server per l'utente Albert con la password B5432-3M6 e il database predefinito corporate.The following example creates a SQL ServerSQL Server login for the user Albert, with a password of B5432-3M6 and a default database of corporate.

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';  
GO  

C.C. Creazione di un account di accesso di SQL Server con una diversa lingua predefinitaCreating a SQL Server login that has a different default language

Nell'esempio seguente viene creato un account di accesso di SQL ServerSQL Server per l'utente TzTodorov con la password 709hLKH7chjfwv, il database predefinito AdventureWorks2012 e la lingua predefinita Bulgarian.The following example creates a SQL ServerSQL Server login for the user TzTodorov, with a password of 709hLKH7chjfwv, a default database of AdventureWorks2012, and a default language of Bulgarian.

EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2012', N'български'  

D.D. Creazione di un account di accesso di SQL Server con un SID specificoCreating a SQL Server login that has a specific SID

Nell'esempio seguente viene creato un account di accesso di SQL ServerSQL Server per l'utente Michael, con la password B548bmM%f6, il database predefinito AdventureWorks2012, la lingua predefinita us_english e il SID 0x0123456789ABCDEF0123456789ABCDEF.The following example creates a SQL ServerSQL Server login for the user Michael, with a password of B548bmM%f6, a default database of AdventureWorks2012, a default language of us_english, and a SID of 0x0123456789ABCDEF0123456789ABCDEF.

EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2012', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF  

Vedere ancheSee Also

CREATE LOGIN (Transact-SQL) CREATE LOGIN (Transact-SQL)
sp_droplogin (Transact-SQL) sp_droplogin (Transact-SQL)
sp_helpuser ( Transact-SQL ) sp_helpuser (Transact-SQL)
sp_revokelogin (Transact-SQL) sp_revokelogin (Transact-SQL)
xp_logininfo ( Transact-SQL )xp_logininfo (Transact-SQL)