sp_adduser (Transact-SQL)
Aggiunge un nuovo utente al database corrente.
Importante: |
---|
Questa funzionalità verrà rimossa in una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Utilizzare CREATE USER in alternativa. |
Convenzioni della sintassi Transact-SQL
Sintassi
sp_adduser [ @loginame = ] 'login'
[ , [ @name_in_db = ] 'user' ]
[ , [ @grpname = ] 'role' ]
Argomenti
- [ @loginame = ] 'login'
Nome dell'account di accesso di SQL Server o dell'account di accesso di Windows. login è di tipo sysname e non prevede alcun valore predefinito. login deve essere un account di accesso di SQL Server o un account di accesso di Windows esistente.
- [ @name_in_db = ] 'user'
Nome del nuovo utente del database. user è di tipo sysname e il valore predefinito è NULL. Se user viene omesso, per impostazione predefinita il nome del nuovo utente del database viene impostato sul nome definito tramite login. Se si specifica user, il nome del nuovo utente nel database risulta diverso da quello dell'account di accesso a livello di server.
- [ @grpname = ] 'role'
Ruolo del database di cui è membro il nuovo utente. role è di tipo sysname e il valore predefinito è NULL. role deve essere un ruolo del database valido nel database corrente.
Osservazioni
La stored procedure sp_adduser creerà inoltre uno schema con lo stesso nome dell'utente.
Dopo avere aggiunto un utente, utilizzare le istruzioni GRANT, DENY e REVOKE per definire le autorizzazioni per controllare le attività che l'utente può svolgere.
Utilizzare sys.server_principals per visualizzare l'elenco dei nomi degli account di accesso validi.
Utilizzare sp_helprole per visualizzare l'elenco dei nomi di ruolo validi. Se si specifica un ruolo, l'utente ottiene automaticamente le autorizzazioni definite per tale ruolo. Se non viene specificato alcun ruolo, l'utente ottiene le autorizzazioni valide del ruolo predefinito public. Per aggiungere un utente a un ruolo, è necessario specificare un valore per user name. (username può corrispondere a login_id.
L'utente guest esiste già in ogni database. L'aggiunta dell'utente guest attiverà questo utente se è stato precedentemente disattivato. Per impostazione predefinita, l'utente guest è disattivato nei nuovi database.
La stored procedure sp_adduser non può essere eseguita in una transazione definita dall'utente.
Non è possibile aggiungere un utente guest perché tale utente esiste già in ogni database. Per attivare l'utente guest, concedere l'autorizzazione CONNECT a guest come illustrato di seguito:
GRANT CONNECT TO guest;
GO
Autorizzazioni
È necessario essere il proprietario del database.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Esempi
A. Aggiunta di un utente del database
Nell'esempio seguente l'utente del database Vidur
viene aggiunto al ruolo esistente Recruiting
nel database corrente utilizzando l'account di accesso di SQL Server esistente Vidur
.
EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting'
B. Aggiunta di un utente del database con lo stesso ID di accesso
Nell'esempio seguente l'utente Arvind
viene aggiunto al database corrente per l'account di accesso di SQL Server Arvind
. Questo utente appartiene al ruolo predefinito public.
EXEC sp_adduser 'Arvind'
C. Aggiunta di un utente del database con un nome diverso dall'account di accesso a livello di server
Nell'esempio seguente l'account di accesso di SQL Server BjornR
viene aggiunto al database corrente che include il nome utente Bjorn
, quindi l'utente del database Bjorn
viene aggiunto al ruolo del database Production
.
EXEC sp_adduser 'BjornR', 'Bjorn', 'Production'
Vedere anche
Riferimento
Stored procedure di protezione (Transact-SQL)
sys.server_principals (Transact-SQL)
sp_addrole (Transact-SQL)
CREATE USER (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
sp_grantlogin (Transact-SQL)
Stored procedure di sistema (Transact-SQL)