sp_dropuser (Transact-SQL)
Rimuove un utente di database dal database corrente. sp_dropuser è compatibile con le versioni precedenti di SQL Server.
Importante |
---|
Questa caratteristica verrà rimossa a partire da 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 DROP USER in alternativa. |
Sintassi
sp_dropuser [ @name_in_db = ] 'user'
Argomenti
- [ @name_in_db = ] 'user'
Nome dell'utente da rimuovere. user è di tipo sysname e non prevede alcun valore predefinito. user deve esistere nel database corrente. Quando si specifica un account di accesso di Windows, utilizzare il nome con il quale il database identifica l'account di accesso.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Osservazioni
sp_dropuser esegue sp_revokedbaccess per rimuovere l'utente dal database corrente.
Utilizzare sp_helpuser per visualizzare un elenco di nomi di utenti che possono essere rimossi dal database corrente.
Quando si rimuove un utente di database, vengono rimossi anche tutti gli alias di tale utente. Se l'utente è proprietario di uno schema vuoto che ha lo stesso suo nome, lo schema verrà rimosso. Se l'utente è proprietario di altre entità a protezione diretta nel database, l'utente non verrà rimosso. La proprietà degli oggetti deve prima essere trasferita ad un'altra entità. Per ulteriori informazioni, vedere ALTER AUTHORIZATION (Transact-SQL). Se si rimuove un utente di database, vengono rimosse automaticamente anche le autorizzazioni corrispondenti e l'utente viene rimosso dai ruoli di database di cui è membro.
Non è possibile utilizzare sp_dropuser per rimuovere il proprietario del database (dbo) gli utenti INFORMATION_SCHEMA o l'utente guest dai database master o tempdb. Nei database non di sistema, EXEC sp_dropuser 'guest' revocherà l'autorizzazione CONNECT all'utente guest, ma l'utente stesso non verrà rimosso.
La stored procedure sp_dropuser non può essere eseguita all'interno di una transazione definita dall'utente.
Autorizzazioni
È richiesta l'autorizzazione ALTER ANY USER per il database.
Esempi
Nell'esempio seguente l'utente Albert viene rimosso dal database corrente.
EXEC sp_dropuser 'Albert';
GO