Esta parece ser una pregunta estúpida, pero a pesar de algunas investigaciones, no pude encontrar ninguna información sobre esto solo (posiblemente debido al uso de una terminología incorrecta).
¿Es posible registrar múltiples inicios de sesión del servidor (autenticación de servidor sql) en un solo usuario de la base de datos (que tiene permisos asignados por ser miembro de un rol de base de datos)?
Tengo docenas de inicios de sesión sql (autenticación de servidor sql) que necesitan leer una configuración de una base de datos central y prefiero asignar todos estos inicios de sesión a un solo usuario de DB en la base de datos de destino que crear un propio usuario de DB para cada inicio de sesión.
En caso afirmativo, ¿cuál sería la sintaxis correcta de T-SQL?
fuente
ROLE
y luego agregas usuarios al rol? De esta manera, solo otorga permisos a la función. Esto lo ayudará a administrar la seguridad de una mejor manera. Además, ¿cuál es la versión del servidor sql - 2008R2, 2012?Respuestas:
Primero para asegurarse de la terminología. Un inicio de sesión es una entidad de seguridad de nivel de instancia (
sys.server_principals
) y un usuario es una entidad de seguridad de nivel de base de datos (sys.database_principals
). Están unidos por un SID (identificador de seguridad). Si mira en las vistas del sistema anteriores, puede ver cómo se unen en un formato 1: 1 por SID. Eso es 1 Iniciar sesión para 1 Usuario en una base de datos. Un inicio de sesión puede tener varios usuarios, pero deben estar en diferentes bases de datos.Por lo tanto, deberá crear un usuario en su base de datos para cada inicio de sesión al que desee tener acceso. Es un comando bastante simple.
Desde allí, puede poner a todos sus usuarios en un Rol único (o múltiple). Un rol es un contenedor que tiene permisos y comparte esos permisos con cada usuario (para roles de base de datos) o inicio de sesión (por ejemplo, roles). Hay un rol incorporado en la base de datos llamado
db_datareader
que da acceso de lectura a cada tabla y vista en la base de datos. Puede agregar a todos sus usuarios a ese rol. Sin embargo, una mejor idea sería crear un nuevo rol y agregarlo aldb_datareader
rol. Luego agregue todos sus usuarios a la nueva función. El beneficio aquí es que si desea agregar permisos adicionales al grupo, simplemente cambie los permisos en el rol.Crea el rol de la siguiente manera:
Agregar un usuario a un rol (o un rol a otro)
o si estás en 2012 o superior
fuente
That's 1 Login to 1 User in a database
.