Acompanhamento de quem fez a alteração identificada pelo CDC.
Nas linhas do meu hack de data e hora , tentei a mesma abordagem adicionando suser_sname como um novo campo com valor padrão na tabela de controle de alterações do cdc. Mas isso parece devolver o proprietário do processo cdc e não o usuário que iniciou a alteração na tabela base. Eu também tentei original_login, mas isso retorna o logon da conta de serviço sql. Novamente, provavelmente associado ao processo cdc e não ao usuário que iniciou a alteração.
Eu encontrei uma pergunta semelhante no estouro de pilha, mas sem outra resposta além de rastrear alterações no front-end ou através de um gatilho, o que parece derrotar o propósito de usar o cdc. Eu não republicaria, mas como o original estava no stackoverflow, pensei em tentar aqui, especialmente se o R2 ou 2012 introduzirem uma maneira melhor.
Então, resumindo: como sei quem fez a alteração na captura de dados alterados?
fonte
Você pode adicionar a coluna e ter um gatilho na tabela para preencher o usuário ao inserir / atualizar / excluir e o cdc armazenará isso. Você pode pegar o nome de usuário na interface do usuário passando o nome de usuário usando informações de contexto ou da sessão real
fonte
Você poderia adicionar um campo UpdatedBy na tabela principal, configurá-lo como padrão para SUSER_NAME () ou ORIGINAL_LOGIN () e ter esses dados preenchidos pelo CDC? Eu acredito que isso lhe dará as mesmas informações que você está procurando.
fonte