Información general
Una tarea de migración de SQL Server no migra los datos de inicio de sesión del servidor ni de usuario de la base de datos. Por lo tanto, las fuentes que contengan 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 en ella. Por lo tanto, el proceso de migración no se completará.
Por ejemplo:
CREATE OR ALTER PROCEDURE dbo.example WITH EXECUTE AS 'some_user' AS BEGIN … END
Este procedimiento almacenado no se migrará porque el usuario some_user no se puede migrar. 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 su base de datos de origen, utilice estas consultas y compruebe 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 una tarea de migración desde un origen que incluya estos metadatos, crea los usuarios en tu instancia de Cloud SQL de destino antes de iniciar la tarea de migración.