Descripción general
Un trabajo de migración de SQL Server no migra los datos de acceso del servidor ni del usuario de la base de datos. Por lo tanto, las fuentes que contienen objetos definidos por usuarios con la cláusula EXECUTE AS '[database_user_name]' no se migrarán a la nueva réplica de Cloud SQL, ya que los usuarios aún no existen allí. Como resultado, fallará todo el proceso de migración.
Por ejemplo:
CREATE OR ALTER PROCEDURE dbo.example WITH EXECUTE AS 'some_user' AS BEGIN … END
No se migrará este procedimiento almacenado porque no se puede migrar al usuario some_user. Esto se debe a que el usuario no existe en la base de datos de destino.
Para identificar qué objetos usan la cláusula EXECUTE AS '[database_user_name]' en tu base de datos de origen, usa estas consultas y verifica si hay usuarios para ellos en la base de datos de destino.
SELECT s.name AS schema_name, o.name AS object_name, p.name AS user_name
FROM sys.sql_modules m
INNER JOIN sys.objects o ON o.object_id = m.object_id
INNER JOIN sys.schemas s ON s.schema_id = o.schema_id
INNER JOIN sys.database_principals p ON p.principal_id = m.execute_as_principal_id
Para ejecutar un trabajo de migración desde una fuente que incluye esos metadatos, crea los usuarios en tu instancia de Cloud SQL de destino antes de iniciar el trabajo de migración.