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

rolesInfo

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 단일 역할에 대한 정보 반환
  • 여러 역할에 대한 정보 반환
  • 데이터베이스의 모든 역할에 대한 정보 반환
  • 필요한 액세스 권한
  • 출력
  • 예시
  • 단일 역할에 대한 정보 보기
  • 여러 역할에 대한 정보 보기
  • 데이터베이스에 대한 모든 사용자 정의 역할 보기
  • 데이터베이스에 대한 모든 사용자 정의 역할 및 기본 제공 역할 보기
  • 역할에 대한 인증 제한 보기
rolesInfo

사용자 정의 역할 과 기본 제공 역할을 모두 포함하여 지정된 역할에 대한 상속 및 권한 정보를 반환 내장 .

rolesInfo 명령은 데이터베이스 로 범위가 지정된 모든 역할을 조회 할 수도 있습니다.

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

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

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.

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

db.runCommand(
{
rolesInfo: { role: <name>, db: <db> },
showAuthenticationRestrictions: <Boolean>,
showBuiltinRoles: <Boolean>,
showPrivileges: <Boolean>,
comment: <any>
}
)

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

필드
유형
설명

rolesInfo

문자열, 문서, 배열 또는 정수

정보를 반환할 역할 입니다. 역할을 지정하는 구문은 동작을 참조하세요.

showAuthenticationRestrictions

부울

선택 사항입니다. 출력에 인증 제한 사항을 포함하려면 이 필드를 true로 설정합니다. 인증 제한은 이 역할을 가진 사용자가 연결할 수 있는 IP 주소를 나타냅니다.

기본적으로 이 필드는 false이며, 이는 rolesInfo 출력에 인증 제한이 포함되지 않음을 의미합니다.

showBuiltinRoles

부울

선택 사항. rolesInfo 필드 가 1 로 설정하다 경우 출력 내장 역할 을 포함하려면 showBuiltinRolestrue 로 설정하다 합니다. 기본값 으로 이 필드 는 false 로 설정하다 되며 rolesInfo: 1 출력에는 사용자 정의 역할만 표시됩니다.

showPrivileges

부울

선택 사항. 다른 역할에서 상속된 권한과 직접 정의된 권한을 모두 포함하여 역할 권한을 표시하려면 필드 를 true 로 설정합니다. 기본값 으로 이 명령은 이 역할 이 권한을 상속하는 역할만 반환하고 특정 권한은 반환하지 않습니다.

comment

any

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

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

현재 데이터베이스 에서 역할 을 지정하려면 이름으로 역할 을 지정합니다.

{ rolesInfo: "<rolename>" }

다른 데이터베이스의 역할을 지정하려면 역할과 데이터베이스를 지정하는 문서로 역할을 지정합니다.

{ rolesInfo: { role: "<rolename>", db: "<database>" } }

여러 역할을 지정하려면 배열을 사용합니다. 배열의 각 역할을 문서 또는 string 로 지정합니다. 명령이 실행되는 데이터베이스에 역할이 있는 경우에만 string 을 사용합니다.

{
rolesInfo: [
"<rolename>",
{ role: "<rolename>", db: "<database>" },
...
]
}

명령이 실행되는 데이터베이스의 모든 역할을 지정하려면 rolesInfo: 1 을(를) 지정합니다. 기본적으로 MongoDB는 데이터베이스의 모든 사용자 정의 역할 을 표시합니다. 기본 제공 역할 도 포함하려면 매개변수-값 쌍 showBuiltinRoles: true 를 포함합니다.

{ rolesInfo: 1, showBuiltinRoles: true }

역할 정보를 확인하려면 해당 역할을 명시적으로 부여 받았거나 역할 데이터베이스에 viewRole 조치가 있어야 합니다.

rolesInfo.role

역할의 이름입니다.

rolesInfo.db

역할 이 정의된 데이터베이스 입니다. 모든 데이터베이스 에는 내장 역할 이 있습니다. 데이터베이스 에는 사용자 정의 역할이 있을 수도 있습니다.

rolesInfo.isBuiltin

true 값은 해당 역할 이 내장 역할 역할임을 나타냅니다. false 값은 역할 이 사용자 정의 역할 임을 나타냅니다.

rolesInfo.roles

이 역할과 역할이 정의된 데이터베이스에 직접 권한을 제공하는 역할입니다.

rolesInfo.inheritedRoles

이 역할이 권한을 상속하는 모든 역할입니다. 여기에는 rolesInfo.roles 배열의 역할과 rolesInfo.roles 배열의 역할이 권한을 상속하는 역할이 포함됩니다. 모든 권한이 현재 역할에 적용됩니다. 이 필드의 문서에는 역할과 역할이 정의된 데이터베이스가 나열됩니다.

rolesInfo.privileges

이 역할 이 직접 지정한 권한입니다. 즉, 배열 은 다른 역할에서 상속된 권한을 제외합니다. 기본값 으로 출력에는 privileges 필드 가 포함되지 않습니다. 필드 를 포함하려면 rolesInfo 명령을 실행 때 showPrivileges: true 를 지정합니다.

각 권한 문서는 리소스 와 해당 리소스에 허용되는 조치 를 지정합니다.

rolesInfo.inheritedPrivileges

다른 역할에서 상속된 권한을 포함하여 이 역할 이 부여하는 모든 권한입니다. 기본값 으로 출력에는 inheritedPrivileges 필드 가 포함되지 않습니다. 필드 를 포함하려면 rolesInfo 명령을 실행 때 showPrivileges: true 를 지정합니다.

각 권한 문서는 리소스 와 해당 리소스에 허용되는 조치 를 지정합니다.

이 섹션의 예에서는 rolesInfo 명령을 사용하여 다음을 수행하는 방법을 보여 줍니다.

다음 명령은 products 데이터베이스에 정의된 associate 역할에 대한 역할 상속 정보를 반환합니다.

db.runCommand(
{
rolesInfo: { role: "associate", db: "products" }
}
)

다음 명령은 명령이 실행되는 데이터베이스 의 siteManager 역할 에 대한 역할 상속 정보를 반환합니다.

db.runCommand(
{
rolesInfo: "siteManager"
}
)

다음 명령은 products 데이터베이스에 정의된 associate 역할에 대한 역할 상속과 권한을 모두 반환합니다.

db.runCommand(
{
rolesInfo: { role: "associate", db: "products" },
showPrivileges: true
}
)

다음 명령은 서로 다른 두 데이터베이스에 있는 두 역할에 대한 정보를 반환합니다.

db.runCommand(
{
rolesInfo: [
{ role: "associate", db: "products" },
{ role: "manager", db: "resources" }
]
}
)

다음은 역할 상속과 권한을 모두 반환합니다.

db.runCommand(
{
rolesInfo: [
{ role: "associate", db: "products" },
{ role: "manager", db: "resources" }
],
showPrivileges: true
}
)

다음 작업은 명령이 실행되는 데이터베이스에서 모든 사용자 정의 역할 과 권한을 포함하여 반환합니다.

db.runCommand(
{
rolesInfo: 1,
showPrivileges: true
}
)

출력 예시(가독성을 위해 축약됨)

{
roles: [
{
_id: 'products.associate',
role: 'associate',
db: 'products',
privileges: [
{
resource: { db: 'products', collection: '' },
actions: [ 'bypassDocumentValidation' ]
}
],
roles: [ { role: 'readWrite', db: 'products' } ],
isBuiltin: false,
inheritedRoles: [ { role: 'readWrite', db: 'products' } ],
inheritedPrivileges: [
{
resource: { db: 'products', collection: '' },
actions: [ 'bypassDocumentValidation' ]
},
{
resource: { db: 'products', collection: '' },
actions: [
'changeStream',
'collStats',
'compactStructuredEncryptionData',
...
]
},
...
]
}
],
ok: 1
}

다음 작업은 내장 제공 역할과 사용자 정의 역할을 모두 포함하여 명령이 실행되는 데이터베이스 의 모든 역할을 반환합니다.

db.runCommand(
{
rolesInfo: 1,
showBuiltinRoles: true
}
)

출력 예시(가독성을 위해 축약됨)

{
roles: [
{
role: 'enableSharding',
db: 'products',
isBuiltin: true,
roles: [],
inheritedRoles: []
},
{
role: 'userAdmin',
db: 'products',
isBuiltin: true,
roles: [],
inheritedRoles: []
},
{
role: 'read',
db: 'products',
isBuiltin: true,
roles: [],
inheritedRoles: []
},
...
],
ok: 1
}

다음 작업은 products 데이터베이스에서 모든 사용자 정의 역할을 반환하며 인증 제한을 포함합니다.

db.runCommand(
{
rolesInfo: 1,
showAuthenticationRestrictions: true
}
)

출력 예시:

{
roles: [
{
_id: 'products.associate',
role: 'associate',
db: 'products',
roles: [ { role: 'readWrite', db: 'products' } ],
authenticationRestrictions: [
[ { clientSource: [ '198.51.100.0' ] } ]
],
isBuiltin: false,
inheritedRoles: [ { role: 'readWrite', db: 'products' } ],
inheritedAuthenticationRestrictions: [
[ { clientSource: [ '198.51.100.0' ] } ]
]
}
],
ok: 1
}

돌아가기

revokeRolesFromRole