Nutzergruppen im SQL-Server 2005/2008

04/09/2009 - 08:54 von Lutz Uhlmann | Report spam
Hallo NG!

Ich habe für zwei verschiedene Anwendungen zwei Windows-Benutzergruppen angelegt. Für diese sind im
SQL-Server mit der DB auch Anmeldungen und Benutzer angelegt worden

Die Nutzer in Gruppe1 greifen mit Anwendung1 auf den SQL-Server zu und erhalten dadurch die
passenden Rechte. Bei den Nutzer aus Gruppe2 geschieht das analaog dazu mit Anwendung2. Beide
greifen auf dieselbe Datenbank zu. Funktioniert soweit ganz gut!

Nun überlege ich wie das für den Fall funktionieren würde, wenn ein Nutzer beide Anwendungen
benutzen möchte. Theoretisch würde ich ihn zu beiden Benutzergruppen hinzufügen und hoffen das alles
passt.
Aber wie wird er letztendlich wirklich am Server angemeldet???
NutzerX -> Anmeldung Gruppe1 -> Benutzer1
NutzerX -> Anmeldung Gruppe2 -> Benutzer2
Kann man irgendwie voraussagen als welcher Benutzer er auf die Datenbank zugreift?
Kann man es irgendwie beeinflussen?
Was würde passieren, wenn ich für NutzerX eine eigene Anmeldung auf dem Server anlegen würde? Würde
die bevorzugt benutzt?

Fürs erste kann ich das Problem umgehen, indem ich einen eigene SQL-Anmeldung für jede Anwendung
nutze, aber trotzdem würde ich gern auch den anderen Weg, so es ihn denn gibt kennen.

Lutz
 

Lesen sie die antworten

#1 Elmar Boye
04/09/2009 - 09:56 | Warnen spam
Hallo Lutz,

Lutz Uhlmann schrieb:
Ich habe für zwei verschiedene Anwendungen zwei Windows-Benutzergruppen angelegt.
Für diese sind im SQL-Server mit der DB auch Anmeldungen und Benutzer angelegt worden



Ich kann davon nur abraten. Lies auch:
<URL:http://blogs.msdn.com/lcris/archive...s.aspx>

Nun überlege ich wie das für den Fall funktionieren würde, wenn ein Nutzer beide Anwendungen
benutzen möchte. Theoretisch würde ich ihn zu beiden Benutzergruppen hinzufügen und hoffen das alles
passt.



Schon der Begriff "Nutzer" ist hier ungenau.
Es gibt Windows Konten, lokale und globale Gruppen,
es gibt SQL Server Konten (CREATE LOGIN - Standard wie Windows)
und Datenbank-Nutzer (CREATE USER).

Aber wie wird er letztendlich wirklich am Server angemeldet???



Die erteilen jeweils Rechte auf den Server respektive auf die Datenbank.
Entweder hast Du sie oder eben nicht. Aufgrund welchen "Nutzers" das Recht
erteilt oder verweigert wurde ist da belanglos - und bei tief verschachtelten
Strukturen, die das Active Directory ermöglicht kaum möglich.

Nur ein Link - die Windows AD Spezis können Dir mehr dazu sagen:
<URL:http://technet.microsoft.com/en-us/...9.aspx>

(Bei der Betrachtung solltest Du den SQL Server als eine Ressource
betrachten, wie einen Drucker usw.)

Kann man es irgendwie beeinflussen?
Was würde passieren, wenn ich für NutzerX eine eigene Anmeldung auf dem Server anlegen würde?
Würde die bevorzugt benutzt?
Fürs erste kann ich das Problem umgehen, indem ich einen eigene SQL-Anmeldung für jede Anwendung
nutze, aber trotzdem würde ich gern auch den anderen Weg, so es ihn denn gibt kennen.



Mach Dir erst gar keine Probleme.
Erstelle SQL Server Konten (CREATE LOGIN)
Weise sie Datenbank-Benutzern zu (CREATE USER)

Für weitere Berechtigungen auf Datenbank-Ebene (abseits public):
Erstelle Datenbank-Rollen und ordne ihnen Windows-Gruppen zu,
wenn Du nicht einzelne Benutzer zuordnen möchtest -
was die eigentliche Doppel-Arbeit ist.
Und noch aufwàndiger wird, wenn eine Software bei unterschiedlichen
Firmen eingesetzt werden, die unterschiedliche Anforderungen definieren.

So kannst Du den Windows Administrator entscheiden lassen ob (Datenbank) "Benutzer 1"
heute in der Vertriebsrolle arbeitet und morgen in den Einkauf wechselt.
Im schlimmsten Falle hat er Zugriff auf die Datenbank, aber keine Rechte
(außer denen in der public Rolle).
So er denn die Firma verlàsst und der Windows Administrator ihn aus der
Windows-Benutzerdatenbank löscht, es beim SQL Server vergisst, bleibt
ein verwaistes Windows-Konto zurück. Selbst wenn er kurz darauf in den
Versand zurückkommt und neu eingerichtet wird, hat er immer keine Rechte
mehr, da Windows SIDs neu vergibt - außer der Administrator wiederbelebt
seine alte SID über die SID History.

Siehe <URL:http://technet.microsoft.com/en-us/...9.aspx>

Gruß Elmar

Ähnliche fragen