Tengo una base de datos de prueba con la que tengo problemas de permisos.
No puedo acceder a la base de datos de informes, y la documentación de ayuda de la aplicación dice que haga lo siguiente:
Resolution:
1. Launch the SQL Server Management Studio and connect to the database server(s) hosting the Vision and Reporting Server databases.
2. Expand the security folder.
3. Select logins and right click on the <username> user and choose properties.
4. Click the User Mapping tab
5.Make sure the following databases are selected in the Users mapped to this Login:
ReportServer
ReportServerTempDB
Your Vision databases
This maps the login/user to the respective databases.
6. As you select each database (including your Vision database), select the db_owner role in the Database role membership for: section. You must select this option for each database.
Cuando hago esto, aparece el siguiente error:
"Create failed for user '<servername>\<username>'. User, group, or role '<servername>\<username>' already exists in the current database. (Microsoft SQL Server, Error: 15023)"
Busqué en Google este error y probé el siguiente comando en cada base de datos:
ALTER USER [<username>] WITH LOGIN = [<username>]
El mensaje indicaba que los comandos se completaron con éxito, pero todavía recibo el error anterior cuando intento asignar cada base de datos como se indicó anteriormente.
¿Qué me estoy perdiendo?
Según el comentario de Kin (gracias) Intenté esto: - Hice clic con el botón derecho en el usuario y seleccioné: Inicio de sesión de script como> Soltar y crear en> Nueva ventana de consulta. - Ejecuté la consulta resultante e intenté asignar los roles de usuario seleccionando las otras dos bases de datos y db_owner nuevamente, pero sigo recibiendo el mismo mensaje de error que el anterior.
Pensamientos ??
Utilizo Auto_Fix con
sp_change_users_login
en mi entorno de desarrollo para solucionar estos problemas (Error 15023). Evite usar Auto_Fix en situaciones sensibles a la seguridad.Además, tenga en cuenta que esta característica puede eliminarse en una versión futura de Microsoft SQL Server.
Otras referencias:
fuente
Es el enfoque correcto.
De lo contrario, vaya a:
Seguridad> Inicios de sesión> (su nombre de usuario)> Propiedades> Asignación de usuario
y vuelva a asignar ese usuario a la base de datos que desee.
Puede usar la siguiente consulta en el contexto de su base de datos para verificar si hay huérfanos:
fuente
ir a la base de datos maestra y eliminar al usuario
fuente