In SQL Server kunt u ofwel accounts hebben op basis van Windows-accounts, of afzonderlijke, specifieke SQL-accounts. Voor beide varianten heeft u één account nodig voor elke gebruiker die uw database moet gebruiken.
De enige uitzondering is de mogelijkheid om een SQL Server Login aan te maken voor een Windows-beveiliging groep , bijv. MyAppUsers
, en vervolgens een gebruiker in uw database voor die login. Hiermee heeft elk Windows-account dat lid is van die beveiligingsgroep (in Windows/AD) ook machtigingen om uw database te zien / gebruiken.
Met deze aanpak verplaatst u ook het beheer van wie uw database kan gebruiken uit SQL Server, aangezien het eigenlijk alleen afhangt van het lidmaatschap van een Windows-beveiligingsgroep.
Eén login, één gebruiker - meerdere Windows-accounts die hiermee rechten krijgen. Lijkt me een winnaar!
Bijwerken:
Maak een login aan voor een Windows AD-groep:
CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS
Maak een gebruiker aan in uw database op basis van die login:
USE (your database)
CREATE USER GroupNameUser
FOR LOGIN [DOMAIN\GroupName]
Verbindingsreeks voor uw SQL Server-verbinding:
server=(your server);database=(your database);integrated security=SSPI;
Wat kan ik je nog meer vertellen?
Update #2: de code niet het gebruik van de Windows-accounts is dit:
Maak een login aan voor elk gebruiker die uw applicatie moet gebruiken
CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'
Maak een gebruiker in uw database op basis van die login - nogmaals, eenmaal voor elke gebruiker van uw app:
USE (your database)
CREATE USER UserName
FOR LOGIN (some login name)
Verbindingsreeks voor uw SQL Server-verbinding:
server=(your server);database=(your database);
user id=UserName;Password=Top$ecret
Maar nogmaals:dit vereist één login inclusief een wachtwoord en één gebruiker in elke database die u moet bijhouden en mogelijk dingen moet doen zoals "wachtwoord opnieuw instellen" -bewerkingen enz. vanuit uw database-app. Veel meer in termen van administratieve overhead!