SQL Server 2005 eliminó accidentalmente a un usuario de la función pública, no se puede volver a agregar al usuario a la función

SQL Server 2005 eliminó accidentalmente a un usuario de la función pública, no se puede volver a agregar al usuario a la función

Estoy intentando crear una cuenta de usuario de base de datos que solo tenga acceso a una base de datos específica, no pueda leer ni cambiar otras bases de datos y no pueda modificar las credenciales de ninguna otra cuenta.

Accidentalmente eliminé a este usuario de la función de servidor "público" mientras solucionaba un problema de conexión, que impedía mi acceso al servidor desde Management Studio para la cuenta.

La única forma de obtener acceso es agregar el usuario a la función de administrador de sistemas, lo que no funcionará porque el usuario ahora tiene acceso a todas las bases de datos.

Ahora, cuando intento volver a agregar al usuario a la función de servidor público, aparece un error que indica que la membresía en la función no se puede cambiar.

Curiosamente, cuando hago clic derecho en el usuario y veo las propiedades, dice que el usuario es miembro de la función pública y no me permite modificar la membresía.

Preguntas:

  • Entonces, si la membresía de la función pública no se puede cambiar, ¿cómo pude eliminar al usuario de la función en primer lugar?
  • ¿Cómo vuelvo a agregar al usuario para poder recuperar el acceso a Management Studio para ese usuario?

Respuesta1

Para ayudar con detalles adicionales, así es como debería verse todo para que puedas decir exactamente qué parte no es correcta. Tiene un inicio de sesión para el servidor y un usuario para la base de datos de la cuenta con la que tiene problemas. En los niveles del servidor y de la base de datos, verá una función pública (función del servidor y función de la base de datos). Las propiedades de la función del servidor público no mostrarán a los usuarios, pero las propiedades del inicio de sesión mostrarán la función de la base de datos pública para todas las bases de datos (se marcará y no podrá desmarcarla). Las propiedades de la función de la base de datos pública tampoco mostrarán ningún miembro y las propiedades del usuario de la base de datos tampoco mostrarán la función pública. Por todo esto, no creo que hayas eliminado al usuario de la función pública.

Si desea intentar eliminar y volver a crear el usuario, primero puede intentar ingresar a la base de datos y simplemente eliminar el usuario de la base de datos. Esto dejará el inicio de sesión, al que puede ingresar en las propiedades y, en Mapeo de usuarios, no debería haber ninguna base de datos verificada. Debería poder verificar la base de datos ahora (porque el usuario de la base de datos ha sido eliminado) y elegir los roles que necesite. Si esto no funciona, también puede eliminar el inicio de sesión junto con el usuario de la base de datos para intentar borrar todo. Para una última comprobación del usuario, puede ejecutar este SQL:

use database_name
exec sp_change_users_login 'Report'

Esto le mostrará los usuarios huérfanos, lo que podría significar que todavía hay un problema con su usuario. Por lo general, esto se puede solucionar con:

use database_name
exec sp_change_users_login 'Auto_Fix', 'username'

Para intentar concluir esto antes de que se alargue, podría haber algo más que esté causando el problema de conexión de este usuario. Si nada de esto funciona, ¿puedes publicar el mensaje de error que aparece al iniciar sesión?

información relacionada