Visão geral
Um job de migração do SQL Server
não migra dados de login do usuário do banco de dados e do servidor. Portanto,
as fontes que contêm objetos definidos pelos usuários com a cláusula EXECUTE AS '[database_user_name]' não serão migradas para a nova réplica do Cloud SQL, porque os usuários ainda não
existem. Como resultado, o processo de migração geral falhará.
Exemplo:
CREATE OR ALTER PROCEDURE dbo.example WITH EXECUTE AS 'some_user' AS BEGIN … END
Esse procedimento armazenado não será migrado porque o usuário some_user não pode ser migrado. Isso ocorre porque o usuário não existe no banco de dados de destino.
Para identificar quais objetos estão usando a cláusula EXECUTE AS '[database_user_name]' no banco de dados de origem, use estas consultas e
verifique se há usuários para eles no banco de dados 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 executar um job de migração de uma origem que inclui esses metadados, crie os usuários na instância de destino do Cloud SQL antes de iniciar o job de migração.