it-swarm.com.de

Überprüfen Sie Benutzer in einer Sicherheitsgruppe in SQL Server

Ich habe im Ordner Security/Users in meiner Datenbank eine Reihe von Sicherheitsgruppen, darunter "MyApplication Users". Ich muss überprüfen, ob ich (oder ein anderer Benutzer) in dieser Gruppe bin, aber ich habe keine Ahnung, wie ich danach fragen soll oder wo ich diese Informationen sehen könnte. Ich habe versucht, in den Grundstücken zu suchen, konnte aber nichts finden. Irgendwelche Ideen?

10
Anna

Überprüfen Sie sich oder den aktuellen Benutzer:

SELECT IS_MEMBER('[group or role]')

Ein Ergebnis von 1 = Ja, 0 = Nein und Null = Die abgefragte Gruppe oder Rolle ist ungültig.

Um eine Liste der Benutzer abzurufen, probieren Sie xp_logininfo, wenn erweiterte Prozeduren aktiviert sind und die betreffende Gruppe eine Windows-Gruppe ist:

EXEC master..xp_logininfo 
@acctname = '[group]',
@option = 'members'
13
DeanG

Für einen schnellen Überblick, zu welchen Gruppen/Rollen der aktuelle Benutzer Mitglied ist;

select
      [principal_id]
    , [name]
    , [type_desc]
    , is_member(name) as [is_member]
from [sys].[database_principals]
where [type] in ('R','G')
order by [is_member] desc,[type],[name]
5
Edward Comeau

Akzeptierte Antwort von DeanG ist die bevorzugte Lösung zum Abrufen dieser Informationen in SQL Server


Sie können dazu Active Directory-Tools verwenden. Ich mag Active Directory-Benutzer und -Computer, das Teil der Remote Server Administration Tools ist. Folgen Sie dem Link, um die Tools unter Windows 7 herunterzuladen und zu installieren.

Nach der Installation können Sie nach einem bestimmten Gruppennamen suchen:

Search

Dann können Sie die Gruppenmitgliedschaft auf der Registerkarte Members sehen:

Members

Wenn Sie den mit RSA-Tools gelieferten AD-Browser nicht verwenden möchten, stehen mehrere andere zur Verfügung.

3
Bryan

Du nicht.

Stattdessen verwenden Sie die Benutzer und Gruppen, um Berechtigungen zu gewähren/verweigern, und lassen Sie sie von der Engine entsprechend erzwingen. Wenn Sie versuchen, Ihre eigene Sicherheit zu rollen, werden Sie nirgendwohin gelangen. Ein banales Beispiel ist, wenn Sie die Regel "Eine Ablehnung über alle Zuschüsse" nicht einhalten werden. Und Sie werden die Feinheiten von EXECUTE AS nicht verstehen. Ganz zu schweigen von der Sicherheit basierend auf den Modulunterschriften.

Für den Datensatz: Benutzer, Rollen und Gruppen werden in der Katalogansicht sys.database_principals angezeigt. sys.fn_my_permissions gibt die aktuellen Kontextberechtigungen für ein bestimmtes sicherungsfähiges Element zurück.

2
Remus Rusanu

Um die AD-Gruppenmitglieder in der Instanz zu finden, können Sie die folgende Abfrage verwenden:

xp_logininfo 'DomainName\AD_GroupName', 'members'

Mithilfe dieser Abfrage können wir die folgenden Zustände finden.

account name, type, privilege, mapped login name, permission path
0
Saranya Kumaran