Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Erstellen mehrerer Benutzer für eine c#.net-WinForm-Anwendung mit SQL Server Express

In SQL Server können Sie entweder auf Windows-Konten basierende Konten oder separate, spezifische SQL-Konten haben. Für beide Varianten benötigen Sie ein Konto für jeden Nutzer das Ihre Datenbank verwenden muss.

Die einzige Ausnahme ist die Möglichkeit, eine SQL Server-Anmeldung für eine Windows-Sicherheits-Gruppe zu erstellen , z.B. MyAppUsers , und dann einen Benutzer in Ihrer Datenbank für diese Anmeldung. Damit hat jedes Windows-Konto, das Mitglied dieser Sicherheitsgruppe ist (in Windows/AD), auch die Berechtigung, Ihre Datenbank zu sehen/zu verwenden.

Mit diesem Ansatz verlagern Sie auch die Verwaltung, wer Ihre Datenbank verwenden darf, aus SQL Server, da es wirklich nur auf die Mitgliedschaft in einer Windows-Sicherheitsgruppe ankommt.

Ein Login, ein Benutzer – mehrere Windows-Konten, die damit Berechtigungen erhalten. Scheint mir ein Gewinner zu sein!

Aktualisieren:

Erstellen Sie ein Login für eine Windows AD-Gruppe:

CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS

Erstellen Sie basierend auf diesem Login einen Benutzer in Ihrer Datenbank:

USE (your database)

CREATE USER GroupNameUser 
FOR LOGIN [DOMAIN\GroupName]

Verbindungszeichenfolge für Ihre SQL Server-Verbindung:

server=(your server);database=(your database);integrated security=SSPI;

Was kann ich Ihnen sonst noch sagen?

Aktualisierung Nr. 2: der Code nicht Verwenden der Windows-Konten ist dies:

Erstellen Sie ein Login für jeden Benutzer, der Ihre Anwendung verwenden muss

CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'

Erstellen Sie basierend auf diesem Login einen Benutzer in Ihrer Datenbank – wieder einmal für jeden Benutzer Ihrer App:

USE (your database)

CREATE USER UserName
FOR LOGIN (some login name)

Verbindungszeichenfolge für Ihre SQL Server-Verbindung:

server=(your server);database=(your database);
  user id=UserName;Password=Top$ecret

Aber noch einmal:Dies erfordert einen Login mit Passwort und einen Benutzer in jeder Datenbank die Sie im Auge behalten und möglicherweise Dinge wie "Passwort zurücksetzen"-Operationen usw. von Ihrer Datenbank-App aus ausführen müssen. Viel mehr Verwaltungsaufwand!