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

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

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

O comando tem a seguinte sintaxe:

db.runCommand(
{
rolesInfo: { role: <name>, db: <db> },
showAuthenticationRestrictions: <Boolean>,
showBuiltinRoles: <Boolean>,
showPrivileges: <Boolean>,
comment: <any>
}
)

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 true para incluir restrições de autenticação na saída. As restrições de autenticação indicam os endereços IP aos quais os usuários com esta role podem se conectar.

Por padrão, este campo é false, significando que a saída rolesInfo não inclui restrições de autenticação.

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

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

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>" },
...
]
}

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 }

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.

rolesInfo.role

O nome da role.

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 de false 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 array rolesInfo.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, especifique showPrivileges: true ao executar o comando rolesInfo .

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, especifique showPrivileges: true ao executar o comando rolesInfo .

Cada documento de privilégio especifica os recursos e as ações permitidas nos recursos.

Os exemplos nesta seção mostram como utilizar o comando rolesInfo para:

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

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

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
}

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
}

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
}

Voltar

revokeRolesFromRole