So überprüfen Sie Benutzerrollen in SQL Server
Native Lösung vs. Netwrix Auditor for SQL Server
Netwrix Auditor für SQL Server
- Öffnen Sie Netwrix Auditor und navigieren Sie zu Berichte -> Vorgefertigt -> SQL Server - Zustand zu einem Zeitpunkt -> Kontoberechtigungen in SQL Server.
- Geben Sie die folgenden Filter an:
- Im User account-Filter geben Sie den vollständigen Benutzernamen ein (wie zum Beispiel MILKYWAY/TomSimpson).
- Im Filter für den Object type wählen Sie Server Instance, Database.
- Klicken Sie auf Anzeigen um einen klaren Bericht über die effektiven Berechtigungen für den Benutzer zu erstellen.
Native Lösung
Auflistung der SQL Server-Rollen für einen Benutzer
- Starten Sie Microsoft SQL Server Management Studio (MSSMS).
- Im Menü File klicken Sie auf Connect Object Explorer.
- Im Dialogfeld „Connect to Server“ geben Sie die folgenden Einstellungen an:
- In der Liste Server type wählen Sie Database Engine.
- Im Feld Server name geben Sie den Namen des SQL-Cluster-Servers ein.
- Im Authentication-Listenfeld wählen Sie Ihre SQL Server Authenticationmethod und geben Sie die zu verwendenden Anmeldeinformationen an. Wenn Sie das Passwort nicht jedes Mal neu eingeben möchten, wenn Sie sich mit dem Server verbinden, aktivieren Sie Remember password.
- Klicken Sie auf Connect.
- Klicken Sie auf Ausführen (oder drücken Sie die F5 Taste).
- Nach der Verbindung klicken Sie auf New Query und fügen Sie das folgende Skript in das Abfragefeld ein:
select r.name as Role, m.name as Principal
from
master.sys.server_role_members rm
inner join
master.sys.server_principals r on r.principal_id = rm.role_principal_id and r.type = 'R'
inner join
master.sys.server_principals m on m.principal_id = rm.member_principal_id
where m.name = 'MILKYWAY\TomSimpson'
- Überprüfen Sie die Liste der Serverebenen-Rollen und Prinzipale (Mitgliedernamen) in den Ergebnissen der Abfrageausführung:
Abfragen von Datenbankrollen in SQL Server für einen Benutzer
- Starten Sie Microsoft SQL Server Management Studio (MSSMS).
- Im Menü File klicken Sie auf Connect Object Explorer.
- Im Dialogfeld „Connect to Server“ geben Sie die folgenden Einstellungen an:
- In der Liste Server type wählen Sie Database Engine aus.
- Im Textfeld Server name geben Sie den Namen des SQL-Cluster-Servers ein.
- Im Authentication-Listenfeld wählen Sie Ihre SQL Server Authentication method und geben Sie die zu verwendenden Anmeldeinformationen an. Wenn Sie das Passwort nicht jedes Mal neu eingeben möchten, wenn Sie sich mit dem Server verbinden, aktivieren Sie Remember password.
- Klicken Sie auf Connect.
- Klicken Sie auf Execute (oder drücken Sie die F5 Taste).
- Nach der Verbindung wählen Sie die Database aus, die Sie für die Abfrage von Benutzerrollen benötigen.
- Klicken Sie auf Neue Abfrage und fügen Sie das folgende Skript in das Abfragefeld ein:
SELECT r.name role_principal_name, m.name AS member_principal_name
FROM sys.database_role_members rm
JOIN sys.database_principals r
ON rm.role_principal_id = r.principal_id
JOIN sys.database_principals m
ON rm.member_principal_id = m.principal_id
where m.name = 'MILKYWAY\TomSimpson'
- Überprüfen Sie die Liste der Serverebenen-Rollen und Prinzipale (Mitgliedernamen) in den Ergebnissen der Abfrageausführung:
Entdecken Sie, wie Sie Benutzerrollen in SQL Server ohne eine einzige Abfrage überprüfen können.
Microsoft SQL Server bietet Rollen an, um Datenbankadministratoren bei der Verwaltung von Berechtigungen für strukturierte Daten zu unterstützen. Serverrollen, wie der Name schon sagt, gewähren serverweiten Zugriff, ähnlich wie Gruppen in der Windows-Welt. Jede SQL-Datenbank kann auch ihre eigenen einzigartigen Berechtigungen und Rollen haben.
Um die Sicherheit zu gewährleisten und die Einhaltung vieler Vorschriften, einschließlich PCI DSS und HIPAA, zu garantieren, müssen Sie alle Server- und Datenbankrollen kennen, die jedem Benutzer zugewiesen sind. Aufgrund der damit verbundenen Komplexität ist das eine schwierige Aufgabe, wenn Sie nur über native Tools verfügen.
Zunächst werden serverseitige Einstellungen, wie Serverrollen, Berechtigungen, Benutzeranmeldeinformationen und Abhängigkeiten, in der Master-Datenbank gespeichert. Verwendung der sys.server_principals Systemansicht.
- Um Benutzer und Serverrollen in SQL Server aufzulisten, können Sie Systemansichten wie sys.server_principals abfragen.
- Um Benutzer und Rollen für Datenbanken in SQL Server aufzulisten, können Sie Systemansichten wie sys.database_principals abfragen.
Obwohl gespeicherte Prozeduren Ihnen helfen können, Bereiche des Servers zu verwalten, müssen Sie Abfragen verwenden, um benutzerdefinierte Berichte zu erstellen (zum Beispiel einen, der mehrere Tabellen nach spezifischen Spaltennamen abgleicht). Beispielsweise werden Informationen über die Mitgliedschaft in Serverrollen in der system view server_role_members der master-Datenbank gespeichert. Da die IDs der Prinzipale verknüpft sind, können Sie eine Zusammenfassung der SQL Server-Benutzerrollen mit einer Abfrage erhalten, indem Sie sys.server_principals mit master.sys.server_role_members anhand der ID-Nummer verbinden. Obwohl Benutzer ihre Mitgliedschaft in Serverrollen und die Prinzipal-ID jedes Mitglieds der festen Serverrollen einsehen können, denken Sie daran, dass das Anzeigen aller Mitgliedschaften in Serverrollen zusätzliche Berechtigungen oder die Mitgliedschaft in der festen Serverrolle security admin erfordert.
Um datenbankebene Informationen zu sammeln, müssen Sie SQL Server-Datenbankrollen für jede Datenbank einzeln abfragen, was zeitaufwendig sein kann. Darüber hinaus können Rollen verschachtelt sein: Datenbankbenutzer, Anwendungsrollen und andere Datenbankrollen können Mitglieder einer Datenbankrolle sein.
Kurz gesagt, umfassende Informationen über aktuelle Benutzerrollen mit nativen Tools zu erhalten, kann kompliziert und äußerst anstrengend sein. Mit Netwrix Auditor hingegen können Sie in wenigen Klicks detaillierte Informationen darüber erhalten, wer welche Server- und Datenbankrollen innehat, in einem lesbaren Format. Die verlinkten Berichte, die im Produkt enthalten sind, ermöglichen es Ihren Spezialisten, schnell durch die Komplexität der verschachtelten Benutzerrollenmitgliedschaften auf einem gesamten Server zu navigieren und Untersuchungen zu vereinfachen. Sie erhalten alle kritischen Details, die Sie benötigen: eine Liste jedes Objekts, auf das der Benutzer Zugriff hat, mit seinem Pfad und Objekttyp, die erteilten Berechtigungen, wie sie erteilt wurden (direkt, über Rollenmitgliedschaft usw.) und ob sie explizit oder vererbt sind. Sie können Berechtigungen aus verschiedenen Blickwinkeln analysieren, einschließlich des Kontos, des Objekts und der Serverebene. All diese Informationen werden präsentiert und sind verfügbar, ohne das Ärgernis, Skripte zu schreiben, Informationen in Excel zu exportieren und manuell zu durchsuchen.
Teilen auf