rolesInfo
Nesta página
- Definição
- Compatibilidade
- Sintaxe
- Campos de comando
- Comportamento
- Retornar informações para uma única função
- Retorno de informações para vários roles
- Retornar informações para todos os roles no banco de dados
- Acesso necessário
- Saída
- Exemplos
- Visualizar informações para uma única função
- Visualizar informações para várias funções
- Ver todas as funções definidas pelo usuário para um banco de dados
- Visualizar todas as funções definidas pelo usuário e integradas para um banco de dados
- Visualizar restrições de autenticação para roles
Definição
rolesInfo
Retorna informações de herança e privilégio para roles especificados, incluindo definidos pelo usuário e roles embutidos.
O comando
rolesInfo
também pode recuperar todos os papéis com escopo de um banco de dados de dados.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas para todos os comandos, consulte Comandos sem suporte.
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
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { rolesInfo: { role: <name>, db: <db> }, showAuthenticationRestrictions: <Boolean>, showBuiltinRoles: <Boolean>, showPrivileges: <Boolean>, comment: <any> } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Tipo | Descrição |
---|---|---|
rolesInfo | string, document, array ou inteiro | As funções sobre as quais retornar informações. Para saber a sintaxe para especificar funções, consulte Comportamento. |
showAuthenticationRestrictions | booleano | Opcional. Configure este campo como Por padrão, este campo é |
showBuiltinRoles | booleano | Opcional. Quando o campo rolesInfo estiver configurado para 1 , configure showBuiltinRoles para true para incluir roles embutidos na saída. Por padrão, este campo é configurado como false e a saída de rolesInfo: 1 exibe somente roles definidas pelo usuário. |
showPrivileges | booleano | Opcional. Configure o campo como true para mostrar privilégios de role, incluindo ambos os privilégios herdados de outras roles e privilégios definidos diretamente. Por padrão, o comando retorna somente as roles das quais esta role herda privilégios e não retorna privilégios específicos. |
comment | any | Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc). |
Comportamento
Retornar informações para uma única função
Para especificar uma role a partir do banco de banco de dados atual, especifique a role pelo nome:
{ rolesInfo: "<rolename>" }
Para especificar uma role de outro banco de dados, especifique a role por um documento que especifica a role e o banco de dados:
{ rolesInfo: { role: "<rolename>", db: "<database>" } }
Retorno de informações para vários roles
Para especificar múltiplos roles, use um array. Especifique cada role na array como um documento ou string. Use uma string somente se a função existir no banco de dados no qual o comando é executado:
{ rolesInfo: [ "<rolename>", { role: "<rolename>", db: "<database>" }, ... ] }
Retornar informações para todos os roles no banco de dados
Para especificar todos os papéis no banco de dados no qual o comando é executado, especifique rolesInfo: 1
. Por padrão, o MongoDB exibe todos os roles definidos pelo usuário no banco de dados. Para incluir também roles incorporadas , inclua o par parâmetro-valor showBuiltinRoles: true
:
{ rolesInfo: 1, showBuiltinRoles: true }
Acesso necessário
Para visualizar as informações de um role, você deve ter recebido explicitamente a função ou deve ter a viewRole
ação no banco de dados do role.
Saída
rolesInfo.db
O banco de dados de dados no qual o papel é definido. Todo banco de dados de dados tem roles integrados. Um banco de dados de dados também pode ter funções definidas pelo usuário.
rolesInfo.isBuiltin
Um valor de
true
indica que o papel é um papel embutido. Um valor defalse
indica que o papel é um papel definido pelo usuário.
rolesInfo.roles
As roles que fornecem privilégios diretamente a esta role e os bancos de dados nos quais as roles são definidas.
rolesInfo.inheritedRoles
Todas as funções das quais esta herda privilégios. Isso inclui as roles na array
rolesInfo.roles
, bem como as roles das quais as roles na arrayrolesInfo.roles
herdam privilégios. Todos os privilégios se aplicam à função atual. Os documentos neste campo listam as funções e os bancos de dados nos quais elas são definidas.
rolesInfo.privileges
Os privilégios especificados diretamente por esta role; ou seja, a array exclui privilégios herdados de outras roles. Por padrão, a saída não inclui o campo
privileges
. Para incluir o campo, especifiqueshowPrivileges: true
ao executar o comandorolesInfo
.Cada documento de privilégio especifica os recursos e as ações permitidas nos recursos.
rolesInfo.inheritedPrivileges
Todos os privilégios concedidos por esta role, incluindo os herdados de outras roles. Por padrão, a saída não inclui o campo
inheritedPrivileges
. Para incluir o campo, especifiqueshowPrivileges: true
ao executar o comandorolesInfo
.Cada documento de privilégio especifica os recursos e as ações permitidas nos recursos.
Exemplos
Os exemplos nesta seção mostram como utilizar o comando rolesInfo
para:
Ver todas as funções definidas pelo usuário para um banco de dados
Visualizar todas as funções definidas pelo usuário e integradas para um banco de dados
Visualizar informações para uma única função
O seguinte comando retorna as informações de herança da role para a role associate
definidas no banco de dados products
:
db.runCommand( { rolesInfo: { role: "associate", db: "products" } } )
O seguinte comando retorna as informações de herança da role para a role siteManager
no banco de banco de dados no qual o comando é executado:
db.runCommand( { rolesInfo: "siteManager" } )
O seguinte comando retorna a herança da role e os privilégios da role associate
definidos no banco de dados products
:
db.runCommand( { rolesInfo: { role: "associate", db: "products" }, showPrivileges: true } )
Visualizar informações para várias funções
O comando a seguir retorna informações para duas roles em dois bancos de dados diferentes:
db.runCommand( { rolesInfo: [ { role: "associate", db: "products" }, { role: "manager", db: "resources" } ] } )
O seguinte retorna a herança do papel e os privilégios:
db.runCommand( { rolesInfo: [ { role: "associate", db: "products" }, { role: "manager", db: "resources" } ], showPrivileges: true } )
Ver todas as funções definidas pelo usuário para um banco de dados
A seguinte operação retorna todas as roles definidas pelo usuário no banco de dados no qual o comando é executado e inclui privilégios:
db.runCommand( { rolesInfo: 1, showPrivileges: true } )
Exemplo de saída (abreviado para facilitar a leitura):
{ roles: [ { _id: 'products.associate', role: 'associate', db: 'products', privileges: [ { resource: { db: 'products', collection: '' }, actions: [ 'bypassDocumentValidation' ] } ], roles: [ { role: 'readWrite', db: 'products' } ], isBuiltin: false, inheritedRoles: [ { role: 'readWrite', db: 'products' } ], inheritedPrivileges: [ { resource: { db: 'products', collection: '' }, actions: [ 'bypassDocumentValidation' ] }, { resource: { db: 'products', collection: '' }, actions: [ 'changeStream', 'collStats', 'compactStructuredEncryptionData', ... ] }, ... ] } ], ok: 1 }
Visualizar todas as funções definidas pelo usuário e integradas para um banco de dados
A operação a seguir retorna todos os roles no banco de banco de dados no qual o comando é executado, incluindo roles integrados e definidos pelo usuário:
db.runCommand( { rolesInfo: 1, showBuiltinRoles: true } )
Exemplo de saída (abreviado para facilitar a leitura):
{ roles: [ { role: 'enableSharding', db: 'products', isBuiltin: true, roles: [], inheritedRoles: [] }, { role: 'userAdmin', db: 'products', isBuiltin: true, roles: [], inheritedRoles: [] }, { role: 'read', db: 'products', isBuiltin: true, roles: [], inheritedRoles: [] }, ... ], ok: 1 }
Visualizar restrições de autenticação para roles
A seguinte operação retorna todas as roles definidas pelo usuário no banco de dados do products
e inclui restrições de autenticação:
db.runCommand( { rolesInfo: 1, showAuthenticationRestrictions: true } )
Saída de exemplo:
{ roles: [ { _id: 'products.associate', role: 'associate', db: 'products', roles: [ { role: 'readWrite', db: 'products' } ], authenticationRestrictions: [ [ { clientSource: [ '198.51.100.0' ] } ] ], isBuiltin: false, inheritedRoles: [ { role: 'readWrite', db: 'products' } ], inheritedAuthenticationRestrictions: [ [ { clientSource: [ '198.51.100.0' ] } ] ] } ], ok: 1 }