Menu Docs

usersInfo

usersInfo

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

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

Importante

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

  • 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:

{
usersInfo: <various>,
showCredentials: <Boolean>,
showPrivileges: <Boolean>,
showAuthenticationRestrictions: <Boolean>,
filter: <document>,
comment: <any>
}

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. usersInfo: <various>Consulte.

showCredentials

booleano

Opcional. Defina o campo como verdadeiro para exibir o hash da senha do usuário. Por padrão, este campo é false.

showPrivileges

booleano

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

booleano

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

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

{ usersInfo: <various> }

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

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