Estou configurando um rastreamento de Eventos Estendidos em uma Instância Gerenciada ( NÃO BD SQL do Azure) pela primeira vez.
Estes são os passos que eu segui cuidadosamente:
- Criei uma chave mestra no meu banco de dados.
- Criou uma credencial de escopo de banco de dados usando a assinatura de acesso compartilhado correta.
- Criou e iniciou um rastreamento. Isso funciona e tudo é rastreado conforme o esperado.
Agora, estou tentando consultar o arquivo XEL usando T-SQL:
SELECT event_data FROM sys.fn_xe_file_target_read_file (N'https://whatever.blob.core.windows.net/xevents/MyTrace_132410674100570000.xel',NULL, NULL, NULL);
No entanto, recebo dois comportamentos diferentes:
- Do SSMS: apenas recebo zero linhas e nenhum erro ou mensagens exibidas.
- Do Azure DataStudio: recebo a seguinte mensagem de erro
Msg 300, Level 14, State 1, Line 1 A permissão VIEW SERVER STATE foi negada no objeto 'servidor', banco de dados 'mestre'. Msg 297, Level 16, State 1, Line 1 O usuário não tem permissão para realizar esta ação.
Alguns fatos:
- Consigo baixar o arquivo XEL usando o Gerenciador de Armazenamento do Azure.
- Já verifiquei o caminho completo para o arquivo XEL e está correto. Posso baixar os arquivos diretamente usando um navegador.
- O nível de acesso do contêiner é Público.
- Já tentei com arquivos diferentes (executando e parando traces, todos com dados).
- Os arquivos XEL estão cheios de dados, pois eu os consulto localmente e posso abri-los usando o SSMS.
- Eu realmente não acho que haja uma chave ausente ou uma credencial com escopo definido. Caso contrário, o rastreamento não funcionaria. Enfim, larguei tudo e comecei de novo do zero e o comportamento não mudou.
- Todos os meus testes foram realizados usando a conta de administrador da instância gerenciada.
Então...
- A leitura de arquivos XEL é realmente suportada em instâncias gerenciadas?
- Existe alguma explicação sobre como acessar os arquivos usando a função sys.fn_xe_file_target_read_file?
Não sei se esta é a solução certa, mas aqui está a solução alternativa que funcionou para mim, caso alguém esteja enfrentando o mesmo problema.
Consegui consultar usando
Parece que o Managed Instance não suporta o uso desta função (ou não consegui encontrar a maneira de fazê-lo).
Espero que isso ajude alguém.