Vincular logins huérfanos en SQL Server

Hola,logo_gps

Hoy os vamos a exponer como solucionar un problema que aparece con cierta frecuencia, el de los logins huérfanos. Nos ocurre que revisando el log SQL Server o bien al ejecutar un procedimiento después de una migración, nos encontramos con errores del tipo:

The activated proc ‘[dbo].[sp_syspolicy_events_reader]’ running on queue ‘msdb.dbo.syspolicy_event_queue’ output the following:  ‘Cannot execute as the database principal because the principal “##MS_PolicyEventProcessingLogin##” does not exist, this type of principal cannot be impersonated, or you do not have permission.’

Este error ocurre porque tenemos un login creado a nivel de servidor pero no está asociado en la base de datos con un usuario. En este caso se trata del login “##MS_PolicyEventProcessingLogin##”, que ejecuta el procedimiento “[dbo].[sp_syspolicy_events_reader]” en la base datos de sistema msdb.

¿Está asociado el login?

Lo primero que debemos hacer es comprobar si existe, y lo hacemos con:

USE msdb
GO
SELECT * FROM sys.database_principals WHERE [name] = ‘##MS_PolicyEventProcessingLogin##’
GO

Posteriormente debemos asociarlo, y lo hacemos con la siguiente consulta:

use msdb
go
EXEC sp_change_users_login ‘Auto_Fix’ , ‘##MS_PolicyEventProcessingLogin##’;
go

Después de esto funcionaría sin problema.

Esperamos que os haya servido,

Un saludo,

Equipo de base de datos

Uso de cookies

GPS Open Source, S.L, le informa que este sitio web utiliza Cookies tanto propias como de terceros para facilitar la navegación y para recopilar información estadística sobre su navegación. Si pulsa aceptar o continúa navegando entenderemos que acepta la instalación de las mismas. Más Info, política de cookies

ACEPTAR
Aviso de cookies
Show Buttons
Share On Facebook
Share On Twitter
Share On Linkedin
Contact us
Hide Buttons