Condividi tramite


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 GRANTistruzioni , DENYe 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 Vidurdi 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 Arvinddi 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 Bjorne viene aggiunto l'utente Bjorn del database al ruolo del Production database.

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';