sp_addrolemember (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
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.
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. In alternativa, usare ALTER ROLE .
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_addrolemember
[ @rolename = ] N'rolename'
, [ @membername = ] N'membername'
[ ; ]
Nota
Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Argomenti
[ @rolename = ] N'rolename'
Nome del ruolo del database nel database corrente. @rolename è sysname, senza impostazione predefinita.
[ @membername = ] N'membername'
Account di sicurezza aggiunto al ruolo. @membername è sysname, senza impostazione predefinita. @membername può essere un utente del database, un ruolo del database, un account di accesso di Windows o un gruppo di Windows.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
Un membro aggiunto a un ruolo tramite sp_addrolemember
eredita le autorizzazioni del ruolo. Se il nuovo membro è un'entità a livello di Windows senza un utente del database corrispondente, viene creato un utente del database, ma potrebbe non essere completamente mappato all'account di accesso. Verificare sempre che l'account di accesso esista e che sia in grado di accedere al database.
Un ruolo non può includere se stesso come membro. Tali definizioni circolari non sono valide, anche quando l'appartenenza è implicita indirettamente da una o più appartenenze intermedie.
sp_addrolemember
non può aggiungere un ruolo predefinito del database, un ruolo predefinito del server o un dbo a un ruolo.
Usare sp_addrolemember
solo per aggiungere un membro a un ruolo del database. Per aggiungere un membro a un ruolo del server, usare sp_addsrvrolemember.
Autorizzazioni
L'aggiunta di membri ai ruoli flessibili del database richiede una delle autorizzazioni seguenti:
Appartenenza al ruolo predefinito del database db_securityadmin o db_owner .
Appartenenza al ruolo proprietario del ruolo.
ALTER ANY ROLE
autorizzazione oALTER
autorizzazione per il ruolo.
L'aggiunta di membri ai ruoli predefiniti del database richiede l'appartenenza al ruolo predefinito del database db_owner .
Esempi
R. Aggiungere un account di accesso di Windows
Nell'esempio seguente viene aggiunto l'account di accesso Contoso\Mary5
di Windows al AdventureWorks2022
database come utente Mary5
. L'utente Mary5
viene quindi aggiunto al ruolo Production
.
Poiché Contoso\Mary5
è noto come utente del database Mary5
nel database AdventureWorks2022
, è necessario specificare il nome utente Mary5
. L'istruzione non riesce a meno che non esista un Contoso\Mary5
account di accesso. Eseguire un test mediante un account di accesso dal dominio.
USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO
B. Aggiungere 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';
Esempi: Piattaforma di strumenti analitici (PDW)
C. Aggiungere un account di accesso di Windows
Nell'esempio seguente viene aggiunto l'account di accesso LoginMary
al AdventureWorks2022
database come utente UserMary
. L'utente UserMary
viene quindi aggiunto al ruolo Production
.
Nota
Poiché l'account di accesso LoginMary
è noto come utente UserMary
del AdventureWorks2022
database nel database, è necessario specificare il nome UserMary
utente. L'istruzione non verrà eseguita correttamente se non esiste un account di accesso Mary5
. Gli account di accesso e gli utenti hanno in genere lo stesso nome. In questo esempio vengono usati nomi diversi per distinguere le azioni che influiscono sull'account di accesso rispetto all'utente.
-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXEC sp_addrolemember 'Production', 'UserMary'
D. Aggiungere un utente del database
Nell'esempio seguente l'utente del database UserMary
viene aggiunto al ruolo del database Production
nel database corrente.
EXEC sp_addrolemember 'Production', 'UserMary'