Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

setAuditConfig (comando de banco de dados)

setAuditConfig

Novidade na versão 5.0.

setAuditConfig é um comando administrativo que define novas configurações de auditoria para instâncias de servidor mongod e mongos no tempo de execução.

Use o método db.adminCommand( { command } ) para executar setAuditConfig no banco de dados admin .

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

Importante

Este comando não é suportado em clusters MongoDB Atlas . Para obter informações sobre o suporte do Atlas para todos os comandos, consulte Comandos não suportados.

O comando tem a seguinte sintaxe:

db.adminCommand( { setAuditConfig: 1, filter: <Filter Document>, auditAuthorizationSuccess: <Boolean> })

O comando tem os seguintes campos:

Campo
Tipo
Descrição

setAuditConfig

inteiro

filter

documento

auditAuthorizationSuccess

booleano

Registrar todas ou somente autorizações de acesso com falha

Habilite a auditoria para usar setAuditConfig no tempo de execução.

auditAuthorizationSuccess habilita a auditoria do sucesso da autorização para a ação authCheck . O valor do parâmetro deve ser true para auditar as operações de leitura e gravação. No entanto, quando auditAuthorizationSuccess é false a auditoria tem menos impacto no desempenho porque o sistema de auditar apenas registra falhas de autorização .

As atualizações de configuração são distribuídas por meio do mecanismo oplog , o que significa que as atualizações nos nós mongod são distribuídas para nós secundários muito rapidamente. Há um mecanismo de distribuição diferente nos nós mongos . mongos nós precisam poll o servidor primário em intervalos regulares para atualizações de configuração. Você pode ver dados obsoletos devido ao atraso da pesquisa se executar setAuditConfig no servidor primário e getAuditConfig em um fragmento antes que o fragmento tenha pesquisado o servidor principal para obter detalhes de configuração atualizados.

Nesses exemplos, as mensagens de auditoria foram reformatadas. Eles aparecem em uma única linha no arquivo de log.

Ative a auditoria quando uma coleção for criada ou excluída.

db.admin.runCommand( { setAuditConfig: 1, filter: { atype: { $in: [ "createCollection", "dropCollection" ] } }, auditAuthorizationSuccess: false })

Quando a coleção inventory é criada no banco de dados sales , o sistema de auditoria registrará uma mensagem como esta:

{ "atype" : "createCollection", "ts" : { "$date" : "2021-08-09T13:45:05.372+00:00" }, "uuid" : { "$binary" : "RKU/YLizS6K9se2GUU7ZVQ==", "$type" : "04" }, "local" : { "ip" : "127.0.0.1", "port" : 27502 }, "remote" : { "ip" : "127.0.0.1", "port" : 51918 }, "users" : [], "roles" : [], "param" : { "ns" : "sales.inventory" }, "result" : 0}

Quando a collection inventory é descartada do banco de dados sales , o sistema de auditoria registra uma mensagem como esta:

{ "atype" : "dropCollection", "ts" : { "$date" : "2021-08-09T13:45:00.661+00:00" }, "uuid" : { "$binary" : "0gle4/pSQli+LUcz43ykag==", "$type" : "04" }, "local" : { "ip" : "127.0.0.1", "port" : 27502 }, "remote" : { "ip" : "127.0.0.1", "port" : 51928 }, "users" : [], "roles" : [], "param" : { "ns" : "sales.inventory" }, "result" : 0}

Defina auditAuthorizationSuccess como true e crie um filtro que inclua ações de interesse para auditar as operações de leitura e gravação.

db.admin.runCommand( { setAuditConfig: 1, filter: { atype: "authCheck", "param.command": { $in: [ "find", "insert", "delete", "update", "findandmodify" ] } }, auditAuthorizationSuccess: true })

Atlas Search a coleção inventory no banco de dados sales usando o comando find para criar uma entrada de registro de auditoria como esta:

{ "atype" : "authCheck", "ts" : { "$date" : "2021-08-09T15:28:10.788+00:00" }, "uuid" : { "$binary" : "ngwRt5CRTZqgE4TsfleoqQ==", "$type" : "04" }, "local" : { "ip" : "127.0.0.1", "port" : 27502 }, "remote" : { "ip" : "127.0.0.1", "port" : 51930 }, "users" : [], "roles" : [], "param" : { "command" : "find", "ns" : "sales.inventory", "args" : { "find" : "inventory", "filter" : { "widget" : 1 }, "lsid" : { "id" : { "$binary" : "FNWNxiitQ8GHKrHx8eJSbg==", "$type" : "04" } }, "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1628521381, "i" : 1 } }, "signature" : { "hash" : { "$binary" : "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", "$type" : "00" }, "keyId" : { "$numberLong" : "0" } } }, "$db" : "sales" } }, "result" : 0}