2013-01-03 7 views
9

In Sql Server 2000 ist es möglich, über eine SQL-Abfrage eine vollständige Liste der Datenbankrollen zurückgeben, die in einer bestimmten Datenbank vorhanden sind?Wie kann ich die Liste der Datenbankrollen in einer SQL Server 2000-Datenbank abfragen?

Ich weiß, dass es möglich ist, diese Rollen zu sehen, indem Sie die Rollen Sicherheit, Rollen und Datenbankrollen in SQL Server Management Studio erweitern, aber ich möchte sie durch eine Abfrage, die ich programmgesteuert analysieren kann.

Screenshot of the nodes in question

Um zu klären, ich bin nicht für eine Liste der Benutzer mit ihren Rollen suchen, aber nur die Liste der Rollen selbst.

Antwort

16

Jede Datenbank in SQL Server 2000 verfügt über eine sysusers system table

Wahrscheinlich so etwas wie

Use <MyDatabase> 

Select 
    [name] 
From 
    sysusers 
Where 
    issqlrole = 1 

den Trick

+0

zu tun hatte ich nicht bemerkt, dass Sysusers Rollen sowie Benutzern enthalten. Ich habe Ihren Code überprüft und er gibt tatsächlich die korrekten Daten zurück. Danke vielmals! –

+0

was für ein lustiger Ort, um es zu sagen. – granadaCoder

+1

*** NB *** 'sys.sysusers' ist veraltet. Ab 2008 sollte ['sys.database_principles'] (https://msdn.microsoft.com/en-gb/library/ms187328.aspx) verwenden. – Richard