Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

usersInfo

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • usersInfo: <various>
  • 필요한 액세스 권한
  • 출력
  • 예시
usersInfo

한 명 이상의 사용자에 대한 정보를 반환합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

중요

이 명령은 M0, M2 및 M5 클러스터에서 제한적으로 지원 됩니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.

  • MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전

  • MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전

명령은 다음과 같은 구문을 가집니다:

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

이 명령은 다음 필드를 사용합니다.

필드
유형
설명
usersInfo
다양한

정보를 반환할 사용자입니다.

usersInfo 에 대한 인수는 요청된 정보에 따라 여러 형식을 갖습니다. 자세한 내용은 usersInfo: <various>를 참조하세요.

showCredentials
부울

선택 사항입니다. 사용자의 비밀번호 해시를 표시하려면 true로 설정합니다.

기본적으로 이 필드는 false입니다.

showCustomData
부울

선택 사항입니다. 출력에서 사용자의 customData를 생략하려면 false로 설정합니다.

기본적으로 이 필드는 true입니다.

버전 5.2에 추가되었습니다.

showPrivileges
부울

선택 사항입니다. 상속된 역할에 대한 확장된 정보를 포함하여 사용자의 전체 권한 세트를 표시하려면 true 로 설정합니다.

기본적으로 이 필드는 false입니다.

모든 사용자를 보는 경우에는 이 필드를 지정할 수 없습니다.

showAuthenticationRestrictions
부울

선택 사항입니다. 사용자의 인증 제한을 표시하려면 true로 설정합니다.

기본적으로 이 필드는 false입니다.

모든 사용자를 보는 경우에는 이 필드를 지정할 수 없습니다.

filter
문서
선택 사항입니다. 필터 조건과 일치하는 사용자에 대한 정보를 반환하기 위해 $match 단계 조건을 지정하는 문서입니다.
comment
any

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

{ usersInfo: <various> }

usersInfo에 대한 인수는 요청된 정보에 따라 여러 형식을 갖습니다.

Argument
반환
{ usersInfo: 1 }

명령이 실행되는 데이터베이스의 사용자에 대한 정보를 반환합니다.

mongosh 는 이 명령 호출을 위한 db.getUsers() 헬퍼를 제공합니다.

{ usersInfo: <username> }

명령이 실행된 데이터베이스에 존재하는 특정 사용자에 대한 정보를 반환합니다.

mongosh 는 이 명령 호출을 위한 db.getUser() 헬퍼를 제공합니다.

{ usersInfo: { user: <name>, db: <db> } }
이름과 데이터베이스로 지정된 사용자에 대한 정보를 반환합니다.
{ usersInfo: [ { user: <name>, db: <db> }, ... ] }
{ usersInfo: [ <username1>, ... ] }
지정된 사용자에 대한 정보를 반환합니다.
{ forAllDBs: true }
모든 데이터베이스의 사용자에 대한 정보를 반환합니다.

사용자는 언제든지 자신의 정보를 볼 수 있습니다.

다른 사용자의 정보를 보려면 명령을 실행하는 사용자에게 다른 사용자의 데이터베이스에 대한 viewUser 작업이 포함된 권한이 있어야 합니다.

지정된 옵션에 따라 usersInfo 에서 다음 정보를 반환할 수 있습니다.

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

"home" 데이터베이스에 정의된 사용자 "Kari"에 대해 자격 증명을 제외한 정보 및 권한을 보려면 다음 명령을 실행합니다.

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

현재 데이터베이스에 있는 사용자를 보려면 이름으로만 사용자를 지정할 수 있습니다. 예를 들어 home 데이터베이스에 있고 home 데이터베이스에 "Kari"라는 사용자가 있는 경우 다음 명령을 실행할 수 있습니다.

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

여러 사용자에 대한 정보를 보려면 선택적 필드 showPrivilegesshowCredentials를 포함하거나 포함하지 않는 배열을 사용합니다. 예시:

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

명령이 실행되는 데이터베이스의 모든 사용자를 보려면 다음과 유사한 명령 문서를 사용합ㄴㅣ다.

db.runCommand( { usersInfo: 1 } )

모든 사용자를 볼 때 showCredentials 옵션은 지정할 수 있지만 showPrivileges 또는 showAuthenticationRestrictions 옵션은 지정할 수 없습니다.

usersInfo 명령은 filter 문서를 허용하여 필터 조건과 일치하는 사용자에 대한 정보를 반환할 수 있습니다.

현재 데이터베이스에서 지정된 역할을 가진 모든 사용자를 보려면 다음과 유사한 명령 문서를 사용합니다.

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

모든 사용자를 볼 때 showCredentials 옵션은 지정할 수 있지만 showPrivileges 또는 showAuthenticationRestrictions 옵션은 지정할 수 없습니다.

usersInfo 명령은 filter 문서를 허용하여 필터 조건과 일치하는 사용자에 대한 정보를 반환할 수 있습니다.

다음 작업은 SCRAM-SHA-1 자격 증명이 있는 모든 사용자를 반환합니다. 특히 이 명령은 모든 데이터베이스의 모든 사용자를 반환한 다음 $match 단계를 사용하여 지정된 필터를 사용자에게 적용합니다.

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

모든 사용자를 볼 때 showCredentials 옵션은 지정할 수 있지만 showPrivileges 또는 showAuthenticationRestrictions 옵션은 지정할 수 없습니다.

버전 5.2에 새로 추가됨: usersInfo 출력에서 사용자의 사용자 지정 데이터를 생략하려면 showCustomData 옵션을 false로 설정합니다.

createUser 명령을 사용하여 products 데이터베이스에 accountAdmin01이라는 사용자를 생성합니다.

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

사용자에 { employeeId: 12345 }customData 필드가 포함됩니다.

사용자를 조회하되 출력에서 사용자 지정 데이터를 생략하려면 showCustomDatafalse로 설정한 상태에서 usersInfo를 실행합니다.

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

출력 예시:

{
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