El acceso a la base de datos de SQL Server falla cuando el usuario obtiene acceso a través del grupo de dominio

El acceso a la base de datos de SQL Server falla cuando el usuario obtiene acceso a través del grupo de dominio

En un SQL Server 2008 R2 (que se ejecuta en Win2003), tenemos un problema con los inicios de sesión a través de grupos de dominio: se otorga acceso de inicio de sesión a la instancia del servidor, pero no se puede acceder a ciertas bases de datos en el servidor.

La máquina del servidor SQL es miembro de nuestro dominio AD, pero no es un controlador de dominio. Estamos utilizando la autenticación de Windows en SQL Server.

Creamos inicios de sesión de SQL Server para grupos de dominio. Configuramos las asignaciones de usuarios a una base de datos XXX en ese servidor, habilitamos los roles lector de datos, escritor de datos y ddladmin. Lo que sucede entonces es que los usuarios del dominio que son miembros de esos grupos pueden conectarse al servidor SQL, pero no a esta base de datos XXX. Si el usuario "usuario1" intenta conectarse, aparece el error "No se puede abrir la base de datos 'XXX' solicitada por el inicio de sesión. El inicio de sesión falló. El inicio de sesión falló para el usuario 'dominio\usuario1'".

Si agrego manualmente 'dominio\usuario1' a la base de datos XXX y habilito las funciones de lector de datos y escritor de datos, entonces el usuario1 no tiene problemas para conectarse.

Curiosamente, el usuario1 puede conectarse a otras 2 bases de datos en ese mismo servidor, también aquí a través de un grupo de dominio AD, pero un grupo diferente creado anteriormente, y el usuario NO está configurado individualmente como usuario en esas bases de datos. Esas bases de datos se copiaron desde una instalación anterior de SQL Server 2005 mediante desconexión y conexión y funcionaban bien en SQL-2005 y también funcionan bien ahora en ese servidor SQL-2008 R2. (Muestran la misma cuenta de usuario como propietario en las propiedades de la base de datos que la base de datos problemática XXX).

La base de datos XXX es una nueva base de datos creada en ese servidor R2 y el grupo de dominio AD también es nuevo.

Puedo agregar usuarios manualmente como solución alternativa por ahora, pero esto no funcionará para siempre y necesito una pista sobre lo que sale mal aquí. Datos adicionales: el servicio SQL Server se ejecuta en una cuenta de administrador de dominio.

Encontré un artículo que describe exactamente el mismo problema para SQL Server 2005:https://connect.microsoft.com/SQLServer/feedback/details/248615/login-fails-when-user-is-granted-access-via-a-domain-group Pero eso es de 2006, no contiene ninguna pista sobre una solución y se debe suponer que ya se ha solucionado.

Respuesta1

Dejando de lado lo completo: ejecutar SQL Server como administrador de dominio no es una buena práctica. Es posible que desee considerar ejecutar SQL como un usuario de dominio sin privilegios.

En cuanto a los usuarios que pueden acceder a las bases de datos movidas mediante desconexión/adjunción, los SID viajan con la base de datos.

Si tuviera que adivinar, según el comportamiento, diría que SQL tiene problemas para determinar la pertenencia al grupo o que faltan los permisos en las bases de datos.

Es posible que desee ejecutar SELECT * FROM sys.database_principalspara obtener más información sobre sus bases de datos específicas y asegurarse de que su grupo de dominio esté allí.

Respuesta2

Si tuviera que adivinar, sus usuarios no cierran y vuelven a iniciar sesión después de ser agregados al grupo que está utilizando como inicio de sesión de SQL. El token de acceso de un usuario no se actualiza con la nueva membresía del grupo hasta que ese usuario cierra la sesión y vuelve a iniciarla en su estación de trabajo. Esto explicaría por qué los grupos más antiguos funcionan pero el nuevo que estás probando no.

información relacionada