Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Documento de Recurso
O documento de recursos especifica os recursos nos quais um privilégio permite actions
.
Banco de dados e/ou recurso de collection
Para especificar bancos de dados e/ou coleções, use a seguinte sintaxe:
{ db: <database>, collection: <collection> }
Especifique uma Coleção de um Banco de Dados como Recurso
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.
Especificar um Banco de Dados como Recurso
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:
system.users
Coleção no banco de dadosadmin
system.roles
Coleção no banco de dadosadmin
Especificar coleções entre bancos de dados como recurso
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.
Especificar todas as collections que não são do sistema em todos os bancos de dados
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.
Recurso de cluster
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.
anyResource
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 }
.