Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

setAuditConfig

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Campos de comando
  • Comportamento
  • Exemplos

Importante

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

setAuditConfig

Novidades 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
}

Dica

Veja também:

Voltar

rotateCertificates