Dans SQL Server, vous pouvez avoir soit des comptes basés sur des comptes Windows, soit des comptes SQL distincts et spécifiques. Pour les deux variantes, vous avez besoin d'un compte pour chaque utilisateur qui a besoin d'utiliser votre base de données.
La seule exception est la possibilité de créer une connexion SQL Server pour un groupe de sécurité Windows , par exemple. MyAppUsers
, puis un utilisateur dans votre base de données pour cette connexion. Avec cela, tout compte Windows membre de ce groupe de sécurité (dans Windows/AD) aura également des autorisations pour voir/utiliser votre base de données.
Avec cette approche, vous déplacez également l'administration de qui peut utiliser votre base de données hors de SQL Server, car cela dépend uniquement de l'appartenance à un groupe de sécurité Windows.
Une connexion, un utilisateur - plusieurs comptes Windows qui obtiennent des autorisations avec cela. Cela me semble être un gagnant !
Mettre à jour :
Créez un identifiant pour un groupe Windows AD :
CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS
Créez un utilisateur dans votre base de données en fonction de ce login :
USE (your database)
CREATE USER GroupNameUser
FOR LOGIN [DOMAIN\GroupName]
Chaîne de connexion pour votre connexion SQL Server :
server=(your server);database=(your database);integrated security=SSPI;
Que puis-je vous dire d'autre ?
Mise à jour #2 : le code pas utiliser les comptes Windows est ceci :
Créez un identifiant pour chacun utilisateur qui a besoin d'utiliser votre application
CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'
Créez un utilisateur dans votre base de données en fonction de cette connexion - encore une fois, une fois pour chaque utilisateur de votre application :
USE (your database)
CREATE USER UserName
FOR LOGIN (some login name)
Chaîne de connexion pour votre connexion SQL Server :
server=(your server);database=(your database);
user id=UserName;Password=Top$ecret
Mais encore une fois :cela nécessite une connexion comprenant un mot de passe et un utilisateur dans chaque base de données dont vous avez besoin pour garder une trace et éventuellement faire des choses comme des opérations de "réinitialisation du mot de passe", etc. à partir de votre application de base de données. Beaucoup plus en termes de frais administratifs !