usersInfo
Definição
usersInfo
Retorna informações sobre um ou mais usuários.
O comando
usersInfo
tem o seguinte formulário:{ usersInfo: <various>, showCredentials: <Boolean>, showPrivileges: <Boolean>, showAuthenticationRestrictions: <Boolean>, filter: <document>, comment: <any> } O comando tem os seguintes campos:
CampoTipoDescriçãousersInfo
váriosO(s) usuário(s) sobre quem retornar informações.
O argumento para
usersInfo
tem vários formulários dependendo das informações solicitadas. ConsulteusersInfo: <various>
.showCredentials
booleanoOpcional. Defina o campo como verdadeiro para exibir o hash da senha do usuário. Por padrão, este campo éfalse
.showPrivileges
booleanoOpcional. 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
booleanoOpcional. 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
documentoOpcional. 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
qualquerOpcional. 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:
mensagens de log do mongod, no campo
attr.command.cursor.comment
.Saída do perfil do banco de dados, no campo
command.comment
.Saída de
currentOp
, no campocommand.comment
.
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).
usersInfo: <various>
{ 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.
|
{ usersInfo: <username> } | Retorne informações sobre um usuário específico que existe no banco de dados onde o comando é executado.
|
{ 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. |
Acesso necessário
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.
Saída
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 }
Exemplos
Ver usuários específicos
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 } )
Ver vários usuários
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 } )
Visualizar todos os usuários de um banco de dados
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
.
Visualizar todos os usuários para um banco de dados que corresponda ao filtro especificado
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
.
Ver todos os usuários com SCRAM-SHA-1
credenciais
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
.