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.
Menu Docs

setAuditConfig (comando de banco de dados)

Importante

Descontinuado na versão 7.1: em vez disso, use o parâmetro de cluster auditConfig .

setAuditConfig

Novidade na versão 5.0.

setAuditConfig é um comando administrativo que define novas configurações de auditar 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 dadosadmin.

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 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.

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
}