Importante
Descontinuado na versão 7.1: em vez disso, use o parâmetro de cluster auditConfig .
Definição
setAuditConfigNovidade na versão 5.0.
setAuditConfigé um comando administrativo que define novas configurações de auditar para instâncias de servidormongodemongosno tempo de execução.Use o método
db.adminCommand( { command } )para executarsetAuditConfigno banco de dadosadmin.
Compatibilidade
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.
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { setAuditConfig: 1, filter: <Filter Document>, auditAuthorizationSuccess: <Boolean> } )
Campos de comando
O comando tem os seguintes campos:
Campo | Tipo | Descrição |
|---|---|---|
| inteiro | EXECUTAR |
| documento | |
| booleano | Registrar todas ou somente autorizações de acesso com falha |
Comportamento
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 os nós secundários muito rapidamente. Há um mecanismo de distribuição diferente nos nós mongos. Os nósmongos precisam poll do servidor primário em intervalos regulares para atualizações de configuração. Você pode ver dados obsoletos devido ao atraso da sondagem se executar setAuditConfig no servidor primary e getAuditConfig em um shard antes que o shard tenha pesquisado o servidor primary para obter detalhes de configuração atualizados.
Exemplos
Nesses exemplos, as mensagens de auditoria foram reformatadas. Eles aparecem em uma única linha no arquivo de log.
Criação e exclusão de collection de auditoria
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 }
Interações do documento de auditoria
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 }