Liste der BenutzerDB

02/09/2008 - 12:34 von perlfred | Report spam
Hallo,

ich denke, eine einfache Frage.
Wie erhalte ich eine Liste der Benutzerdatenbanken eines SQL-Servers
(konkret MSSQL2K5).

Allgemein kann man ja über GetSchema("Databases") die DB-Informationen
abrufen. Mit dem einzigsten Parameter ist mir bis jetzt aber nur die
Eingrenzung auf eine angegebene DB gelungen. Kann ich irgendwie die
System-DB's ausblenden?


string[] restrictions = new string[1]; // Array der Restriktionen
erstellen
restrictions[0] = "VV2"; // Nur Eintragungen der
Datenbank VV2 zurückgeben
DataTable table = connection.GetSchema("Databases", restrictions);

PS.: Finde ich irgendwo eine Beschreibung der Restriktionen des jeweiligen
Schematas?

Fred Aurich
 

Lesen sie die antworten

#1 Frank Dzaebel
03/09/2008 - 10:57 | Warnen spam
Hallo,

wir benutzen hier gerne den vollen Vor- und Zunamen als Usernamen.

Wie erhalte ich eine Liste der Benutzerdatenbanken
eines SQL-Servers (konkret MSSQL2K5).



Ein Beispiel:

SqlDataAdapter adapter = new SqlDataAdapter(
"SELECT name,owner_sid FROM sys.databases", connection);
DataTable dt = new DataTable();
int res = adapter.Fill(dt);
List<string> user_databases = new List<string>();
const int sysadmin = 1;
foreach (DataRow dr in dt.Rows)
{
byte[] sid = dr["owner_sid"] as byte[];
if (sid.Length != 1 || sid[0] != sysadmin)
user_databases.Add(dr["name"].ToString());
}


PS.:  Finde ich irgendwo eine Beschreibung der
Restriktionen des jeweiligen Schematas?



Zum einen kannst Du die über:

DataTable rests = connection.GetSchema("Restrictions");

abfragen. Zum anderen ist hier Doku dazu:

['GetSchema' und Schemaauflistungen (ADO.NET)]
http://msdn.microsoft.com/de-de/lib...54934.aspx

[Anbieterspezifische Schemaauflistungen (ADO.NET)]
http://msdn.microsoft.com/de-de/lib...54969.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen