En SQL Server, puede tener cuentas basadas en cuentas de Windows o cuentas SQL específicas separadas. Para ambas variaciones, necesita una cuenta para cada usuario que necesita usar su base de datos.
La única excepción es la capacidad de crear un inicio de sesión de SQL Server para un grupo de seguridad de Windows. , p.ej. MyAppUsers
y luego un usuario en su base de datos para ese inicio de sesión. Con esto, cualquier cuenta de Windows que sea miembro de ese grupo de seguridad (en Windows/AD) también tendrá permisos para ver/usar su base de datos.
Con este enfoque, también está moviendo la administración de quién puede usar su base de datos fuera de SQL Server, ya que realmente solo depende de la membresía en un grupo de seguridad de Windows.
Un inicio de sesión, un usuario:múltiples cuentas de Windows que obtienen permisos con esto. ¡Me parece un ganador!
Actualizar:
Cree un inicio de sesión para un grupo AD de Windows:
CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS
Cree un usuario en su base de datos basado en ese inicio de sesión:
USE (your database)
CREATE USER GroupNameUser
FOR LOGIN [DOMAIN\GroupName]
Cadena de conexión para su conexión de SQL Server:
server=(your server);database=(your database);integrated security=SSPI;
¿Qué más puedo decirte?
Actualización n.º 2: el código no usando las cuentas de Windows es esto:
Cree un inicio de sesión para cada uno usuario que necesita usar su aplicación
CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'
Cree un usuario en su base de datos basado en ese inicio de sesión; de nuevo, una vez para cada usuario de tu aplicación:
USE (your database)
CREATE USER UserName
FOR LOGIN (some login name)
Cadena de conexión para su conexión de SQL Server:
server=(your server);database=(your database);
user id=UserName;Password=Top$ecret
Pero de nuevo:esto requiere un inicio de sesión que incluya una contraseña y un usuario en cada base de datos que debe realizar un seguimiento y posiblemente hacer cosas como operaciones de "restablecimiento de contraseña", etc. desde su aplicación de base de datos. ¡Mucho más en términos de gastos administrativos!