Laden...

Visual Studio 2013; SQL Server 2012, Benutzer zu einer Datenbank hinzufügen im Anwendungscode

Erstellt von Eleshna vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.366 Views
E
Eleshna Themenstarter:in
14 Beiträge seit 2015
vor 9 Jahren
Visual Studio 2013; SQL Server 2012, Benutzer zu einer Datenbank hinzufügen im Anwendungscode

Hallo liebe Community,

Kurze wichtige Infos:
Visual Studio 2013 Ultimate,
SQl Server 2012,
Zugriff auf die Datenbank der Anwendung über LINQ to SQL,

Beschreibung des Problems:
Ich erstelle eine Anwendung die mit einer Datenbank kommuniziert. In dieser Anwendung soll es Benutzer und einen Admin geben.

Auf die Datenbank soll nur eine Bestimmte Benutzergruppe Zugriff haben.
Da sich immer wieder Benutzer ändern können, soll es möglich sein Benutzer zur Datenbank hinzuzufügen oder zu löschen.

Die existierenden Benutzer sind dem Server-System (Firmen-Server, Domain) schon bekannt und müssen nur der Datenbank zugeordnet werden.
Die Benutzerprofile werden für viele verschiedene Anwendungen verwendet.

Jetzt möchte ich dem Admin der Anwendung die Möglichkeit geben,

  1. aus einer Liste von bekannten Windows-Authentication Users(Domain User), einen Benutzer auszuwählen
  2. Und den gewünschten User als Datenbankbenutzer hinzuzufügen.

Die Fragen:
Wie kann ich eine Liste von den Windows Usern einer Domain erstellen?
Wie kann ich über Code in meiner Anwendung den Benutzer hinzufügen?
In T-SQL ist es glaub ungefähr so:

CREATE USER [BEISPIEL-FIRMA\M.Mustermann] FOR LOGIN [BEISPIEL-FIRMA\M.Mustermann];

Ich danke schon jetzt für jegliche geistige Bemühungen

Datenbank Neuling 🙁
SQL Neuling 🙁
C# Neuling 🙁
Irgendwann bin ich Profi 😁

T
314 Beiträge seit 2013
vor 9 Jahren

Ich nehme mal an Windows-Authentication Users bedeutet dass ihr Active Directory einsetzt?

Für die Liste der User musst Du also entsprechend das Active Directory abfragen.

Ich selbst würde mir (sofern möglich) aber gar nicht den Streß machen und die User auf dem Server verwalten, sondern auf der Datenbank eben direkt eine AD-Gruppe entsprechend berechtigen und dann nur noch die User entsprechend in der Gruppe im AD verwalten.

Oder ist das keine Option?

E
Eleshna Themenstarter:in
14 Beiträge seit 2015
vor 9 Jahren

hmm kannst du das vielleicht etwas genauer beschreiben?

Ich weiß nicht ob ich verstehe, wie du das meinst.

Ich muss auf jeden Fall der Datenbank den neuen User zuordnen, sonst bekommt der über den Server keinen Zugriff auf die Daten.
Und das am besten über die Anwendung selbst, da der "Admin" dieser Anwendung gar keine Ahnung von Server, Datenbank, Active Diretory ect. hat...
Und allen Benutzern der Domain Zugriff gewähren sollte nicht sein.

Datenbank Neuling 🙁
SQL Neuling 🙁
C# Neuling 🙁
Irgendwann bin ich Profi 😁

T
314 Beiträge seit 2013
vor 9 Jahren

Von welchem Server sprichst Du denn? Vom SQL-Server oder gibt es noch einen weiteren?

Wie gesagt wenn die Umgebung es zulässt, würde ich es wie folgt aufbauen:

  • Datenbank hat ActiveDirectoryGruppe als User z.B. [App_Users]
    Diese würde ich bei der initialen Anlage der Datenbank entsprechend mit anlegen.
  • Der Admin hat im AD die Berechtigung um Member der Gruppe zu managen
    Folglich kapselt deine Anwendung nur das Management der Gruppe im AD. Sprich der Admin wählt eben aus deiner Liste Nutzer aus und fügt sie der Gruppe hinzu (oder löscht etc.).

Die Zugriffserlaubnis auf die Datenbank wird an der Stelle automatisch über die Gruppe gesteuert.


Wenn Du jedoch tatsächlich die Nutzer anlegen willst, weil alle Nutzer zusätzlich noch unterschiedlich Berechtigungen haben sollen oder eben eine Lösung über eine Gruppe nicht in Frage kommt, dann funktioniert dies ganz normal über entsprechende SQLCommands. Das zum Anlegen hast Du ja bereits genannt.

E
Eleshna Themenstarter:in
14 Beiträge seit 2015
vor 9 Jahren

Ok vielen dank 😃,

das mit den AD Gruppen muss ich mir mal genauer anschauen(davon hab ich keine Ahnung ^^)
Klingt aber sehr gut 😃.

Es gibt nur den SQL Server 2012, der in einer Virtuellen Maschine Läuft(aus was für gründen ist mir unbekannt).

Ich werde mich mal etwas ausgeschweifter Informieren. Wenn ich Fragen oder eine Lösung habe komm ich zurück 😄.
Bin schließlich noch Neuling im Bereich SQL, Server, Datenbank, etc.

Grüßli Elesh

I'll be Back 😉

PS: Ich liebe dieses Forum

Datenbank Neuling 🙁
SQL Neuling 🙁
C# Neuling 🙁
Irgendwann bin ich Profi 😁

T
314 Beiträge seit 2013
vor 9 Jahren

Bedenke dass es dem User bei beiden Lösungen möglich ist sich auch ohne deine Anwendung auf die Datenbank zu verbinden.