Ich habe überall gesucht und keine schlüssige Antwort auf diese Frage gefunden.
Ich benötige ein Skript, das ALLE Berechtigungen für eine zugeordnete Rolle erteilen kann.
Irgendwelche Gedanken, oder ist es überhaupt möglich?
Das bringt mich zum SCHLIESSEN - aber ich kann es nicht so scheinen, als würde ich es umdrehen und die Zusammenfassung für Rollen anstatt für Benutzer geben.
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
quelle
quelle
Ich kann die Referenz nicht finden, aber hier ist ein sehr beschreibendes Skript (ich habe es seit Jahren in meinem Repository - sehr nützlich für die Prüfung):
quelle
Ich denke, dies sollte getan werden. Ersetzen Sie 'blah' entweder durch Ihren Rollennamen oder durch einen Datenbankbenutzer (beachten Sie, dass eingebaute Rollen keine Berechtigungen aufweisen):
quelle
Um der Liste etwas hinzuzufügen, habe ich ein paar SPs sp_dbpermissions und sp_srvpermissions , mit denen die gleichen Informationen zurückgegeben werden können.
Du kannst rennen
Und nimm das
(Sie können es nicht sehen, aber das Erteilungsskript befindet sich im dritten Datensatz rechts daneben und Skripte werden im ersten Datensatz rechts daneben abgelegt / erstellt.)
quelle
Das ist meine Anstrengung. Ich habe ein längeres Skript, das auch alle DBs durchläuft. Lassen Sie mich wissen, ob das nützlicher ist:
quelle
Nur um die akzeptierte Antwort zu ergänzen , kann eine Rolle manchmal zu einer anderen Rolle gehören.
quelle
Da dies über den Community-Bot wieder aufgetaucht ist, werde ich mein Skript in den Hut werfen, da es ziemlich erschöpfend ist und ich auf nichts gestoßen bin, das nicht identifiziert wurde. Der Bonus ist, dass die Ausgabe gut formatiert ist und auch recht umfangreiche Datenbankrollen zulässt:
quelle