Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Documento de Recurso

Nesta página

  • Banco de dados e/ou recurso de collection
  • Recurso de cluster
  • anyResource

O documento de recursos especifica os recursos nos quais um privilégio permite actions.

Para especificar bancos de dados e/ou coleções, use a seguinte sintaxe:

{ db: <database>, collection: <collection> }

Se o documento de recurso especificar os campos db e collection como strings não vazias, o recurso será a collection especificada no banco de dados especificado. Por exemplo, o seguinte documento especifica um recurso da coleção inventory no banco de dados products :

{ db: "products", collection: "inventory" }

Para um role definido pelo usuário com escopo para um banco de dados que não sejaadmin , a especificação de recursos para seus privilégios deve especificar o mesmo banco de dados do role. Os roles definidos pelo usuário com escopo para o banco de dados admin podem especificar outros bancos de dados.

Se apenas o campo collection for uma string vazia (""), o recurso será o banco de dados especificado, excluindo as collections do sistema. Por exemplo, o seguinte documento de recurso especifica o recurso do banco de dados test , excluindo as collections do sistema:

{ db: "test", collection: "" }

Para um role definido pelo usuário com escopo para um banco de dados que não sejaadmin , a especificação de recursos para seus privilégios deve especificar o mesmo banco de dados do role. Os roles definidos pelo usuário com escopo para o banco de dados admin podem especificar outros bancos de dados.

Observação

Quando você especifica um banco de dados como o recurso, as collections do sistema são excluídas, a menos que você as nomeie explicitamente, como a seguir:

{ db: "test", collection: "system.js" }

As collections do sistema incluem, mas não estão limitadas ao seguinte:

Se apenas o campo db for uma string vazia (""), o recurso serão todas as collections com o nome especificado em todos os bancos de dados. Por exemplo, o seguinte documento especifica o recurso de todas as collections do accounts em todos os bancos de dados:

{ db: "", collection: "accounts" }

Para roles definidos pelo usuário, somente roles com escopo para o banco de dados admin podem ter esta especificação de recurso para seus privilégios.

Se ambos os campos db e collection forem strings vazias (""), o recurso será todas as collections, exceto as collections do sistema, em todos os bancos de dados:

{ db: "", collection: "" }

Para roles definidos pelo usuário, somente roles com escopo para o banco de dados admin podem ter esta especificação de recurso para seus privilégios.

Para especificar o cluster como o recurso, use a seguinte sintaxe:

{ cluster : true }

Use o recurso cluster para ações que afetam o estado do sistema em vez de agir em um conjunto específico de bancos de dados ou collections. Exemplos de tais ações são shutdown, replSetReconfig e addShard. Por exemplo, o documento a seguir concede a ação shutdown no cluster.

{ resource: { cluster : true }, actions: [ "shutdown" ] }

Para roles definidos pelo usuário, somente roles com escopo para o banco de dados admin podem ter esta especificação de recurso para seus privilégios.

O recurso interno anyResource dá acesso a todos os recursos do sistema e é destinado ao uso interno. Não use esse recurso, exceto em circunstâncias excepcionais. A sintaxe deste recurso é { anyResource: true }.

← system.users collection