Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database w usłudze Microsoft Fabric
Dodaje użytkownika bazy danych, rolę bazy danych, identyfikator logowania systemu Windows lub grupę systemu Windows do roli bazy danych w bieżącej bazie danych.
Ważne
Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Użyj ALTER ROLE zamiast tego.
Transact-SQL konwencje składni
Składnia
sys.sp_addrolemember
[ @rolename = ] N'rolename'
, [ @membername = ] N'membername'
[ ; ]
Uwaga / Notatka
Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
Arguments
[ @rolename = ] N'rolename'
Nazwa roli bazy danych w aktualnej bazie danych. @rolename to sysname, bez domyślnego ustawienia.
[ @membername = ] N'membername'
Konto bezpieczeństwa dodawane do roli. @membername to sysname, bez domyślnego ustawienia. @membername może być użytkownikiem bazy danych, rolą bazy danych, logowaniem do Windows lub grupą Windows.
Zwracanie wartości kodu
0 (powodzenie) lub 1 (niepowodzenie).
Uwagi
Członek dodany do roli poprzez wykorzystanie sp_addrolemember dziedziczy uprawnienia tej roli. Jeśli nowy członek jest podmiotem na poziomie Windows bez odpowiadającego mu użytkownika bazy danych, tworzy się użytkownika bazy danych, ale może nie być w pełni przypisany do logowania. Zawsze sprawdzaj, czy login istnieje i ma dostęp do bazy danych.
Rola nie może być członkiem. Takie definicje kołowe nie są ważne, nawet gdy członkostwo jest pośrednio implikowane przez jedno lub więcej członkostwa pośredniego.
sp_addrolemember Nie można dodać stałej roli bazy danych, stałego serwera ani DBO do roli.
Używam sp_addrolemember tylko do dodawania członka do roli w bazie danych. Aby dodać członka do roli serwera, użyj sp_addsrvrolemember.
Permissions
Dodawanie członków do elastycznych ról baz danych wymaga jednego z następujących uprawnień:
Członkostwo w roli db_securityadmin lub db_owner stałej bazie danych.
Członkostwo w roli, która ją posiada.
ALTER ANY ROLEZgoda lub zgoda naALTERrolę.
Dodanie członków do stałych ról baz danych wymaga członkostwa w db_owner stałej roli bazy danych.
Przykłady
A. Dodaj logowanie do Windows
Poniższy przykład dodaje logowanie Contoso\Mary5 do Windows do bazy AdventureWorks2025 danych jako użytkownik Mary5. Następnie użytkownik Mary5 jest dodawany do roli Production .
Ponieważ Contoso\Mary5 w bazie Mary5 danych jest znany jako użytkownik AdventureWorks2025 bazy danych, należy podać nazwę Mary5 użytkownika. Oświadczenie nie działa, chyba że Contoso\Mary5 istnieje logowanie. Sprawdź, logując się ze swojej domeny.
USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO
B. Dodaj użytkownika bazy danych
Poniższy przykład dodaje użytkownika Mary5 bazy danych do roli bazy Production danych w aktualnej bazie danych.
EXECUTE sp_addrolemember 'Production', 'Mary5';