db.grantPrivilegesToRole()
이 페이지의 내용
정의
db.grantPrivilegesToRole(rolename, privileges, writeConcern)
중요
Mongo쉬 방법
이 페이지에서는
mongosh
메서드를 설명합니다. 이는 데이터베이스 명령 또는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.데이터베이스 명령에 대해서는
grantPrivilegesToRole
명령을 참조하십시오.MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.
db.grantPrivilegesToRole()
메서드는 다음 구문을 사용합니다.db.grantPrivilegesToRole( "< rolename >", [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], { < writeConcern > } ) db.grantPrivilegesToRole()
메서드는 다음 인수를 사용합니다.Parameter유형설명rolename
문자열권한을 부여할 역할의 이름입니다.privileges
배열역할에 추가할 권한입니다. 권한 형식은privileges
를 참조하세요.writeConcern
문서db.grantPrivilegesToRole()
메서드는 하나 이상의 권한을 부여할 수 있습니다. 각<privilege>
구문은 다음과 같습니다.{ resource: { <resource> }, actions: [ "<action>", ... ] }
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
중요
이 명령은 MongoDB Atlas 클러스터에서 지원되지 않습니다. 모든 명령에 대한 Atlas 지원 에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
행동
복제본 세트
복제본 세트에서 실행할 경우, db.grantPrivilegesToRole()
는 기본값으로 "majority"
쓰기 고려(write concern)를 사용하여 실행됩니다.
범위
admin
데이터베이스에서 생성된 역할을 제외하고, 역할은 해당 데이터베이스에 적용되는 권한만 포함할 수 있습니다
admin
데이터베이스에서 생성된 역할에는 admin
데이터베이스, 다른 데이터베이스 또는 클러스터 리소스에 적용되는 권한이 포함될 수 있습니다.
필요한 액세스 권한
권한을 부여하려면 권한이 대상으로 하는 데이터베이스에 grantRole
작업이 있어야 합니다. 여러 데이터베이스 또는 cluster
리소스에 대한 권한을 부여하려면 admin
데이터베이스에 대한 grantRole
작업이 있어야 합니다.
예시
다음 db.grantPrivilegesToRole()
작업은 products
데이터베이스에 있는 inventoryCntrl01
역할에 권한을 두 개 더 부여합니다. 작업은 해당 데이터베이스에서 실행됩니다.
use products db.grantPrivilegesToRole( "inventoryCntrl01", [ { resource: { db: "products", collection: "" }, actions: [ "insert" ] }, { resource: { db: "products", collection: "system.js" }, actions: [ "find" ] } ], { w: "majority" } )
첫 번째 권한은 이 역할이 있는 사용자가 products
시스템 컬렉션을 제외한 데이터베이스의 모든 컬렉션에 대해 insert
작업을 수행할 수 있도록 허용합니다. 시스템 컬렉션에 접근하려면 두 번째 권한과 마찬가지로 권한이 리소스 문서의 시스템 컬렉션을 명시적으로 지정해야 합니다.
두 번째 권한은 이 역할이 있는 사용자가 system.js
라는 product
데이터베이스의 시스템 컬렉션에 대해 find
작업을 수행할 수 있도록 허용합니다.