sp_addrolemember (Transact-SQL)
Aggiunge un utente del database, un ruolo del database, un account di accesso di Windows o un gruppo di Windows a un ruolo del database nel database corrente.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_addrolemember [ @rolename = ] 'role',
[ @membername = ] 'security_account'
Argomenti
- [ @rolename = ] 'role'
Nome del ruolo del database nel database corrente. role è di tipo sysname e non prevede alcun valore predefinito.
- [ @membername = ] 'security_account'
Account di protezione aggiunto al ruolo. security_account è di tipo sysname e non prevede alcun valore predefinito. security_account può essere un utente del database, un ruolo del database, un account di accesso di Windows oppure un gruppo di Windows.
Osservazioni
Un membro aggiunto al ruolo tramite la stored procedure sp_addrolemember eredita le autorizzazioni del ruolo. Se il nuovo membro è un'entità a livello di Windows senza un corrispondente utente del database, verrà creato un utente del database.
Un ruolo non può includere sé stesso come membro. Tali definizioni "circolari" non sono valide anche quando l'appartenenza è indirettamente sottintesa da una o più appartenenze intermedie.
sp_addrolemember non può aggiungere un ruolo predefinito del database, un ruolo predefinito del server o dbo a un ruolo. Prima del Serivce Pack 1SQL Server, sp_addrolemember non può essere eseguito in una transazione definita dall'utente.
Utilizzare sp_addrolemember solo per aggiungere un membro a un ruolo del database. Per aggiungere un membro a un ruolo del server, utilizzare sp_addsrvrolemember (Transact-SQL).
Non aggiungere ruoli flessibili come membri di ruoli fissi. Questo potrebbe abilitare l'intensificazione dei privilegi imprevista.
Autorizzazioni
L'aggiunta di membri ai ruoli del database flessibili richiede uno degli elementi seguenti:
- Appartenenza al ruolo predefinito del server db_owner.
- Appartenenza al ruolo predefinito del server db_securityadmin.
- Appartenenza al ruolo proprietario del ruolo.
- Autorizzazione ALTER per il ruolo.
L'aggiunta di membri ai ruoli predefiniti del database richiede l'appartenenza al ruolo del database predefinito db_owner.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Esempi
A. Aggiunta di un account di accesso di Windows
Nell'esempio seguente viene aggiunto l'account di accesso Windows Contoso\Mary5
.
al database AdventureWorks
come utente Mary5
. L'utente Mary5
viene quindi aggiunto al ruolo Production
.
[!NOTA] Poiché
Contoso\Mary5
è conosciuto come utente del databaseMary5
nel database AdventureWorks, è necessario specificare il nome utenteMary5
tramitesp_addrolemember
.
USE AdventureWorks
GO
EXEC sp_grantdbaccess 'Contoso\Mary5', 'Mary5'
GO
EXEC sp_addrolemember 'Production', 'Mary5'
B. Aggiunta di un utente del database
Nell'esempio seguente l'utente del database Mary5
viene aggiunto al ruolo del database Production
nel database corrente.
EXEC sp_addrolemember 'Production', 'Mary5'
Vedere anche
Riferimento
Stored procedure di protezione (Transact-SQL)
sp_addsrvrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
Stored procedure di sistema (Transact-SQL)