I SQL Server kan du antingen ha konton baserade på Windows-konton eller separata, specifika SQL-konton. För båda varianterna behöver du ett konto för varje användare som behöver använda din databas.
Det enda undantaget är möjligheten att skapa en SQL Server-inloggning för en säkerhetsgrupp i Windows , t.ex. MyAppUsers
, och sedan en användare i din databas för den inloggningen. Med detta kommer alla Windows-konton som är medlem i den säkerhetsgruppen (i Windows/AD) också att ha behörighet att se/använda din databas.
Med detta tillvägagångssätt flyttar du också administrationen av vem som kan använda din databas från SQL Server, eftersom det egentligen bara beror på medlemskap i en Windows-säkerhetsgrupp.
En inloggning, en användare - flera Windows-konton som får behörigheter med detta. Verkar som en vinnare för mig!
Uppdatering:
Skapa en inloggning för en Windows AD-grupp:
CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS
Skapa en användare i din databas baserat på den inloggningen:
USE (your database)
CREATE USER GroupNameUser
FOR LOGIN [DOMAIN\GroupName]
Anslutningssträng för din SQL Server-anslutning:
server=(your server);database=(your database);integrated security=SSPI;
Vad mer kan jag berätta för dig?
Uppdatering #2: koden inte att använda Windows-kontona är detta:
Skapa en inloggning för var och en användare som behöver använda din applikation
CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'
Skapa en användare i din databas baserat på den inloggningen – igen, en gång för varje användare av din app:
USE (your database)
CREATE USER UserName
FOR LOGIN (some login name)
Anslutningssträng för din SQL Server-anslutning:
server=(your server);database=(your database);
user id=UserName;Password=Top$ecret
Men återigen:detta kräver en inloggning inklusive ett lösenord och en användare i varje databas som du behöver hålla reda på och eventuellt göra saker som "återställ lösenord"-operationer etc. från din databasapp. Mycket mer när det gäller administratörskostnader!