Menu Docs

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

usersInfo

Nesta página

  • Definição
  • Sintaxe
  • Compatibilidade
  • Campos de comando
  • usersInfo: <various>
  • Acesso obrigatório
  • Saída
  • Exemplos
usersInfo

Retorna informações sobre um ou mais usuários.

O comando tem a seguinte sintaxe:

db.runCommand(
{
usersInfo: <various>,
showCredentials: <Boolean>,
showCustomData: <Boolean>,
showPrivileges: <Boolean>,
showAuthenticationRestrictions: <Boolean>,
filter: <document>,
comment: <any>
}
)

Este comando está disponível em sistemas hospedados nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

Observação

Este comando tem suporte limitado em clusters M0, M2 e M5 . Para obter mais informações, consulte Comandos não suportados.

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição
usersInfo
vários

O(s) usuário(s) sobre quem retornar informações.

O argumento para usersInfo tem vários formatos dependendo das informações solicitadas. Consulte usersInfo: <various>.

showCredentials
boleano

Opcional. Defina como true para exibir o hash da senha do usuário.

Por padrão, este campo é false.

showCustomData
boleano

Opcional. Defina como false para omitir o customData do usuário da saída.

Por padrão, este campo é true.

Novidades na versão 5,2.

showPrivileges
boleano

Opcional. Defina como true para mostrar o conjunto completo de privilégios do usuário, incluindo informações expandidas para as funções herdadas.

Por padrão, este campo é false.

Se estiver visualizando todos os usuários, você não poderá especificar este campo.

showAuthenticationRestrictions
boleano

Opcional. Defina como true para mostrar as restrições de autenticação do usuário.

Por padrão, este campo é false.

Se estiver visualizando todos os usuários, você não poderá especificar este campo.

filter
documento
Opcional. Um documento que especifica $match condições de estágio para retornar informações para usuários que correspondem às condições de filtro.
comment
qualquer

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

{ usersInfo: <various> }

O argumento para usersInfo tem vários formatos dependendo das informações solicitadas:

Argumento
Devoluções
{ usersInfo: 1 }

Retorna informações sobre os usuários no banco de dados onde o comando é executado.

mongosh fornece o auxiliar db.getUsers() para esta invocação do comando.

{ usersInfo: <username> }

Retorne informações sobre um usuário específico que existe no banco de dados onde o comando é executado.

mongosh fornece o auxiliar db.getUser() para esta invocação do comando.

{ usersInfo: { user: <name>, db: <db> } }
Retorna informações sobre o usuário especificado pelo nome e banco de dados.
{ usersInfo: [ { user: <name>, db: <db> }, ... ] }
{ usersInfo: [ <username1>, ... ] }
Retorna informações sobre os usuários especificados.
{ forAllDBs: true }
Retorna informações sobre usuários em todos os bancos de dados.

Os usuários sempre podem ver suas próprias informações.

Para visualizar as informações de outro usuário, o usuário que executa o comando deve ter privilégios que incluam a ação viewUser no banco de dados do outro usuário.

As seguintes informações podem ser retornadas por usersInfo dependendo das opções especificadas:

{
"users" : [
{
"_id" : "<db>.<username>",
"userId" : <UUID>,
"user" : "<username>",
"db" : "<db>",
"mechanisms" : [ ... ],
"customData" : <document>,
"roles" : [ ... ],
"credentials": { ... }, // only if showCredentials: true
"inheritedRoles" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true
"inheritedPrivileges" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true
"inheritedAuthenticationRestrictions" : [ ] // only if showPrivileges: true or showAuthenticationRestrictions: true
"authenticationRestrictions" : [ ... ] // only if showAuthenticationRestrictions: true
},
...
],
"ok" : 1
}

Para visualizar informações e privilégios, mas não as credenciais, do usuário "Kari" definido no banco de dados do "home", execute o seguinte comando:

db.runCommand(
{
usersInfo: { user: "Kari", db: "home" },
showPrivileges: true
}
)

Para exibir um usuário que existe no banco de dados atual, você pode especificá-lo somente pelo nome. Por exemplo, se você estiver no banco de dados home e um usuário chamado "Kari" existir no banco de dados home, execute o seguinte comando:

db.getSiblingDB("home").runCommand(
{
usersInfo: "Kari",
showPrivileges: true
}
)

Para visualizar informações de vários usuários, utilize um array, com ou sem os campos opcionais showPrivileges e showCredentials. Por exemplo:

db.runCommand( {
usersInfo: [ { user: "Kari", db: "home" }, { user: "Li", db: "myApp" } ],
showPrivileges: true
} )

Para visualizar todos os usuários no banco de dados em que o comando é executado, use um documento de comando semelhante ao seguinte:

db.runCommand( { usersInfo: 1 } )

Ao visualizar todos os usuários, você pode especificar a opção showCredentials, mas não as opções showPrivileges ou showAuthenticationRestrictions.

O comando usersInfo pode aceitar um documento do filter para retornar informações para usuários que correspondem à condição de filtro.

Para visualizar todos os usuários no banco de dados atual que têm a função especificada, use um documento de comando semelhante ao seguinte:

db.runCommand( { usersInfo: 1, filter: { roles: { role: "root", db: "admin" } } } )

Ao visualizar todos os usuários, você pode especificar a opção showCredentials, mas não as opções showPrivileges ou showAuthenticationRestrictions.

O comando usersInfo pode aceitar um documento do filter para retornar informações para usuários que correspondem à condição de filtro.

A seguinte operação retorna todos os usuários que têm credenciais SCRAM-SHA-1. Especificamente, o comando retorna todos os usuários em todos os bancos de dados e depois utiliza o estágio $match para aplicar o filtro especificado aos usuários.

db.runCommand( { usersInfo: { forAllDBs: true}, filter: { mechanisms: "SCRAM-SHA-1" } } )

Ao visualizar todos os usuários, você pode especificar a opção showCredentials, mas não as opções showPrivileges ou showAuthenticationRestrictions.

Novo na versão 5.2: para omitir os dados personalizados dos usuários da saída usersInfo, defina a opção showCustomData como false.

Utilize o comando createUser para criar um usuário denominado accountAdmin01 no banco de dados do products:

db.getSiblingDB("products").runCommand( {
createUser: "accountAdmin01",
pwd: passwordPrompt(),
customData: { employeeId: 12345 },
roles: [ { role: 'readWrite', db: 'products' } ]
} )

O usuário contém um campo customData de { employeeId: 12345 }.

Para recuperar o usuário e omitir os dados personalizados da saída, execute usersInfo com showCustomData configurado para false:

db.getSiblingDB("products").runCommand ( {
usersInfo: "accountAdmin01",
showCustomData: false
} )

Saída de exemplo:

{
users: [
{
_id: 'products.accountAdmin01',
userId: UUID("0955afc1-303c-4683-a029-8e17dd5501f4"),
user: 'accountAdmin01',
db: 'products',
roles: [ { role: 'readWrite', db: 'products' } ],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
],
ok: 1
}
← updateUser