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.
Si applica a:SQL Server
Crea un nuovo account di accesso di SQL Server che consente a un utente di connettersi a un'istanza di SQL Server usando l'autenticazione di SQL Server.
Importante
Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece CREATE LOGIN .
Importante
Se possibile, usare l'autenticazione di Windows.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_addlogin
[ @loginame = ] N'loginame'
[ , [ @passwd = ] N'passwd' ]
[ , [ @defdb = ] N'defdb' ]
[ , [ @deflanguage = ] N'deflanguage' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]
Argomenti
[ @loginame = ] N'loginame'
Nome dell'account di accesso. @loginame è sysname, senza impostazione predefinita.
[ @passwd = ] N'passwd'
Password di accesso di .
@passwd è sysname, con il valore predefinito NULL.
Importante
Non usare una password vuota. Usare una password complessa.
[ @defdb = ] N'defdb'
Database predefinito dell'account di accesso ,ovvero il database a cui è connesso l'account di accesso dopo l'accesso.
@defdb è sysname, con il valore predefinito master.
[ @deflanguage = ] N'deflanguage'
Lingua predefinita dell'account di accesso.
@deflanguage è sysname, con un valore predefinito .NULL Se non viene specificato @deflanguage, il @deflanguage predefinito del nuovo account di accesso viene impostato sulla lingua predefinita corrente del server.
[ @sid = ] Sid
Numero di identificazione di sicurezza (SID).
@sid è varbinary(16), con il valore predefinito NULL. Se @sid è NULL, il sistema genera un SID per il nuovo account di accesso. Nonostante l'uso di un tipo di dati varbinary , i valori diversi da NULL devono essere esattamente di 16 byte e non possono esistere già. Specificare @sid è utile, ad esempio, quando si esegue lo script o si spostano account di accesso di SQL Server da un server a un altro e si vuole che gli account di accesso abbiano lo stesso SID in server diversi.
[ @encryptopt = ] 'criptografo'
Specifica se la password viene passata in forma non crittografata o come hash della password non crittografata. Non viene eseguita alcuna crittografia. Le parole "crittografia" ed "encryption" vengono utilizzate in questa descrizione per compatibilità con le versioni precedenti. Se viene passata una password di testo non crittografato, viene eseguito l'hashing. Il valore hash viene archiviato. @encryptopt è varchar(20)e può essere uno dei valori seguenti.
| valore | Descrizione |
|---|---|
NULL (predefinito) |
La password viene passata in forma non crittografata. |
skip_encryption |
Per la password è già stato eseguito l'hashing. Il motore di database deve archiviare il valore senza eseguirne di nuovo ilhashing. |
skip_encryption_old |
La password fornita è stata sottoposto a hashing da una versione precedente di SQL Server. Il motore di database deve archiviare il valore senza eseguirne di nuovo ilhashing. Questa opzione è disponibile solo in funzione delle operazioni di aggiornamento. |
Valori del codice restituito
0 (esito positivo) o 1 (errore).
Osservazioni:
Gli account di accesso di SQL Server possono contenere da 1 a 128 caratteri, inclusi lettere, simboli e numeri. Gli account di accesso non possono contenere una barra rovesciata (\); essere un nome di accesso riservato, ad esempio sa o pubblico, oppure essere NULL o una stringa vuota.
Se viene specificato il nome di un database predefinito, è possibile connettersi al database specificato senza eseguire l'istruzione USE . Tuttavia, non è possibile usare il database predefinito finché non viene concesso l'accesso a tale database dal proprietario del database (usando sp_adduser, sp_addrolemember) o sp_addrole.
Il numero SID è un GUID che identifica in modo univoco l'account di accesso nel server.
La modifica della lingua predefinita del server non modifica la lingua predefinita degli account di accesso esistenti. Per modificare la lingua predefinita del server, usare sp_configure.
L'uso skip_encryption di per eliminare l'hash delle password è utile se la password è già sottoposta a hash quando l'account di accesso viene aggiunto a SQL Server. Se la password è stata hashata da una versione precedente di SQL Server, usare skip_encryption_old.
sp_addlogin non può essere eseguito all'interno di una transazione definita dall'utente.
La tabella seguente illustra diverse stored procedure usate con sp_addlogin.
| Procedura memorizzata | Descrizione |
|---|---|
| sp_grantlogin | Aggiunge un utente o un gruppo di Windows. |
| sp_password | Modifica la password di un utente. |
| sp_defaultdb | Modifica il database predefinito di un utente. |
| sp_defaultlanguage | Modifica la lingua predefinita di un utente. |
Autorizzazioni
È richiesta l'autorizzazione ALTER ANY LOGIN.
Esempi
R. Creare un account di accesso di SQL Server
Nell'esempio seguente viene creato un account di accesso di SQL Server per l'utente Victoria, senza specificare un database predefinito. Sostituire <password> con una password complessa.
EXECUTE sp_addlogin 'Victoria', '<password>';
GO
B. Creare un account di accesso di SQL Server con un database predefinito
Nell'esempio seguente viene creato un account di accesso di SQL Server per l'utente Alberte un database predefinito di corporate. Sostituire <password> con una password complessa.
EXECUTE sp_addlogin 'Albert', '<password>', 'corporate';
GO
C. Creare un account di accesso di SQL Server con una lingua predefinita diversa
Nell'esempio seguente viene creato un account di accesso di SQL Server per l'utente TzTodorov, un database predefinito di AdventureWorks2025e una lingua predefinita di Bulgarian. Sostituire <password> con una password complessa.
EXECUTE sp_addlogin 'TzTodorov', '<password>', 'AdventureWorks2022', N'български';
D. Creare un account di accesso di SQL Server con un SID specifico
Nell'esempio seguente viene creato un account di accesso di SQL Server per l'utente Michael, un database predefinito di AdventureWorks2025, una lingua predefinita di us_englishe un SID di 0x0123456789ABCDEF0123456789ABCDEF. Sostituire <password> con una password complessa.
EXECUTE sp_addlogin 'Michael', '<password>', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF;