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!