문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

roleInfo

이 페이지의 내용

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

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

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

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

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
어떤

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

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

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

{ rolesInfo: "<rolename>" }

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

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

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

{
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
}
← cancelRolesFromRole