db.getUser()
Nesta página
Definição
db.getUser(username, args)
Retorna informações do usuário para um usuário especificado. Execute este método no banco de dados do usuário. Se o usuário não existir no banco de dados,
db.getUser()
retornaránull
.O método
db.getUser()
tem os seguintes parâmetros:db.getUser( "<username>", { showCredentials: <Boolean>, showCustomData: <Boolean>, showPrivileges: <Boolean>, showAuthenticationRestrictions: <Boolean>, filter: <document> } ) ParâmetroTipoDescriçãousername
stringO nome do usuário para o qual recuperar as informações.args
documentoOpcional. Um documento que especifica argumentos adicionais.O documento
args
aceita os seguintes campos:CampoTipoDescriçãoshowCredentials
booleanoOpcional. Defina como
true
para exibir o hash da senha do usuário.Por padrão, este campo é
false
.showCustomData
booleanoOpcional. Defina como
false
para omitir ocustomData
do usuário da saída.Por padrão, este campo é
true
.Novidades na versão 5.2.
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 condições de estágio$match
para retornar informações para usuários que correspondem às condições de filtro.db.getUser()
encapsula o comandousersInfo: <username>
.Para detalhes sobre saída, consulte
usersInfo
.
Acesso necessário
Para visualizar as informações de outro usuário, você deve ter a viewUser
ação no banco de dados do outro usuário.
Os usuários podem ver suas próprias informações.
Exemplos
As operações a seguir retornam informações sobre um usuário appClient
de exemplo em um banco de dados accounts
:
use accounts db.getUser("appClient")
Saída de exemplo:
{ _id: 'accounts.appClient', userId: UUID("1c2fc1bf-c4dc-4a22-8b04-3971349ce0dc"), user: 'appClient', db: 'accounts', roles: [], mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ] }
Omitir dados personalizados da saída
Novo na versão 5.2: para omitir os dados personalizados de um usuário da saída db.getUser()
, 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 db.getUser()
com showCustomData
configurado como false
:
db.getSiblingDB("products").getUser( "accountAdmin01", { showCustomData: false } )
Saída de exemplo:
{ _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' ] }