Crea y ejecuta un trabajo de migración de SQL Server que contenga metadatos con una cláusula EXECUTE AS

Descripción general

Un trabajo de migración de SQL Server no migra los datos de acceso del usuario y del servidor de la base de datos. Por lo tanto, las fuentes que contienen objetos definidos por los 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, el proceso de migración general fallará.

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 el 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 comprueba 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.