sp_adduser (Transact-SQL)
Si applica a: SQL Server
Aggiunge un nuovo utente al database corrente.
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 USER .
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_adduser
[ @loginame = ] N'loginame'
[ , [ @name_in_db = ] N'name_in_db' ]
[ , [ @grpname = ] N'grpname' ]
[ ; ]
Argomenti
[ @loginame = ] N'loginame'
Nome dell'account di accesso di SQL Server o di Windows. @loginame è sysname, senza impostazione predefinita. @loginame deve essere un account di accesso di SQL Server o di Windows esistente.
[ @name_in_db = ] N'name_in_db'
Nome del nuovo utente del database. @name_in_db è sysname, con il valore predefinito NULL
. Se @name_in_db non viene specificato, per impostazione predefinita il nome del nuovo utente del database viene @loginame. Se si specifica @name_in_db viene assegnato un nome al nuovo utente nel database diverso dal nome di accesso a livello di server.
[ @grpname = ] N'grpname'
Ruolo del database di cui il nuovo utente diventa membro. @grpname è sysname, con un valore predefinito .NULL
@grpname deve essere un ruolo di database valido nel database corrente.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
sp_adduser
crea anche uno schema che rappresenta il nome dell'utente.
Dopo l'aggiunta di un utente, usare le GRANT
istruzioni , DENY
e REVOKE
per definire le autorizzazioni che controllano le attività eseguite dall'utente.
Usare sys.server_principals
per visualizzare un elenco di account di accesso validi.
Utilizzare sp_helprole
per visualizzare un 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 un ruolo, l'utente ottiene le autorizzazioni concesse al ruolo pubblico predefinito. Per aggiungere un utente a un ruolo, è necessario specificare un valore per il @name_in_db . (@name_in_db può essere uguale a @loginame.
L'utente guest esiste già in ogni database. L'aggiunta di guest utente abilita l'utente, se è stata disabilitata in precedenza. Per impostazione predefinita, il guest utente è disabilitato nei nuovi database.
sp_adduser
non può essere eseguito all'interno di una transazione definita dall'utente.
Non è possibile aggiungere un utente guest perché un utente guest esiste già all'interno di ogni database. Per abilitare l'utente guest, concedere l'autorizzazione GUEST CONNECT come illustrato:
GRANT CONNECT TO guest;
GO
Autorizzazioni
È necessario essere il proprietario del database.
Esempi
R. Aggiungere un utente del database
Nell'esempio seguente l'utente Vidur
del database viene aggiunto al ruolo esistente Recruiting
nel database corrente usando l'account di accesso Vidur
di SQL Server esistente.
EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting';
B. Aggiungere un utente del database con lo stesso ID di accesso
Nell'esempio seguente viene aggiunto l'utente Arvind
al database corrente per l'account di accesso Arvind
di SQL Server . Questo utente appartiene al ruolo pubblico predefinito.
EXEC sp_adduser 'Arvind';
C. Aggiungere un utente del database con un nome diverso rispetto all'account di accesso a livello di server
Nell'esempio seguente viene aggiunto l'account di accesso BjornR
di SQL Server al database corrente che è un nome utente di Bjorn
e viene aggiunto l'utente Bjorn
del database al ruolo del Production
database.
EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';