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 | 다양한 | 정보를 반환할 사용자입니다.
|
showCredentials | 부울 | 선택 사항입니다. 사용자의 비밀번호 해시를 표시하려면 기본적으로 이 필드는 |
showCustomData | 부울 | 선택 사항입니다. 출력에서 사용자의 기본적으로 이 필드는 버전 5.2에 추가되었습니다. |
showPrivileges | 부울 | 선택 사항입니다. 상속된 역할에 대한 확장된 정보를 포함하여 사용자의 전체 권한 세트를 표시하려면 기본적으로 이 필드는 모든 사용자를 보는 경우에는 이 필드를 지정할 수 없습니다. |
showAuthenticationRestrictions | 부울 | 선택 사항입니다. 사용자의 인증 제한을 표시하려면 기본적으로 이 필드는 모든 사용자를 보는 경우에는 이 필드를 지정할 수 없습니다. |
filter | 문서 | 선택 사항입니다. 필터 조건과 일치하는 사용자에 대한 정보를 반환하기 위해 $match 단계 조건을 지정하는 문서입니다. |
comment | any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
usersInfo: <various>
{ usersInfo: <various> }
usersInfo
에 대한 인수는 요청된 정보에 따라 여러 형식을 갖습니다.
Argument | 반환 |
---|---|
{ usersInfo: 1 } | 명령이 실행되는 데이터베이스의 사용자에 대한 정보를 반환합니다.
|
{ usersInfo: <username> } | 명령이 실행된 데이터베이스에 존재하는 특정 사용자에 대한 정보를 반환합니다.
|
{ 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 } )
여러 사용자 보기
여러 사용자에 대한 정보를 보려면 선택적 필드 showPrivileges
및 showCredentials
를 포함하거나 포함하지 않는 배열을 사용합니다. 예시:
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
옵션은 지정할 수 없습니다.
자격 증명을 가진 모든 SCRAM-SHA-1
사용자 보기
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
필드가 포함됩니다.
사용자를 조회하되 출력에서 사용자 지정 데이터를 생략하려면 showCustomData
를 false
로 설정한 상태에서 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 }