Szukałem wszędzie i nie znalazłem rozstrzygającej odpowiedzi na to pytanie.
Potrzebuję skryptu, który może dać WSZYSTKIE uprawnienia do powiązanej roli.
Jakieś myśli, czy to w ogóle możliwe?
To sprawia, że ZAMKNIĘCIE - ale nie mogę tego odwrócić i podać podsumowania ról, a nie użytkowników.
WITH perms_cte as
(
select USER_NAME(p.grantee_principal_id) AS principal_name,
dp.principal_id,
dp.type_desc AS principal_type_desc,
p.class_desc,
OBJECT_NAME(p.major_id) AS object_name,
p.permission_name,
p.state_desc AS permission_state_desc
from sys.database_permissions p
inner JOIN sys.database_principals dp
on p.grantee_principal_id = dp.principal_id
)
--role members
SELECT rm.member_principal_name, rm.principal_type_desc, p.class_desc,
p.object_name, p.permission_name, p.permission_state_desc,rm.role_name
FROM perms_cte p
right outer JOIN (
select role_principal_id, dp.type_desc as principal_type_desc,
member_principal_id,user_name(member_principal_id) as member_principal_name,
user_name(role_principal_id) as role_name--,*
from sys.database_role_members rm
INNER JOIN sys.database_principals dp
ON rm.member_principal_id = dp.principal_id
) rm
ON rm.role_principal_id = p.principal_id
order by 1
sql-server
sql-server-2008-r2
elgabito
źródło
źródło
Nie mogę znaleźć referencji, ale tutaj jest bardzo opisowy skrypt (mam go w swoim repozytorium od lat - bardzo przydatny do kontroli):
źródło
Myślę, że powinienem to zrobić, zastąpić „bla” nazwą swojej roli lub użytkownikiem bazy danych (zwróć uwagę, że wbudowane role nie pokazują się jako mające jakiekolwiek uprawnienia):
źródło
Aby dodać do listy, mam kilka SP sp_dbpermissions i sp_srvpermissions , których można użyć do zwrócenia tego samego rodzaju informacji.
Możesz biegać
I weź to
(Nie widać tego, ale skrypt przyznania jest wyłączony po prawej stronie trzeciego zestawu danych i upuszcza / tworzy skrypty po prawej stronie pierwszego zestawu danych.)
źródło
To jest mój wysiłek. Mam dłuższy skrypt, który również przechodzi przez wszystkie bazy danych, daj mi znać, jeśli to bardziej przydatne:
źródło
aby dodać do zaakceptowanej odpowiedzi , rola może czasami należeć do innej roli.
źródło
Ponieważ pojawiło się to za pośrednictwem bota Community, wrzucę skrypt do kapelusza, ponieważ jest dość wyczerpujący i nie spotkałem niczego, co nie zostało zidentyfikowane. Bonusem jest to, że dane wyjściowe są ładnie sformatowane i pozwalają również na dość rozległe role w bazie danych:
źródło