개발바닥

[mongodb] (Unaithorized) not authorized on ... to execute command .... 본문

Error

[mongodb] (Unaithorized) not authorized on ... to execute command ....

라이언 2022. 3. 25. 04:14
반응형

mongodb write 하는 중 아래와 같이 에러 발생

문제 원인

mongodb 접속한 계정이 해당 db에 대한 write 권한이 없어서 발생하는 문제이다.

dev_admin db에 대한 권한이 빠져있기 때문에 해당 유저가 wrtie를 못하는 상황

 

$ use admin
$ show users             // 유저에 접근 권한을 확인할 수 있다.

 

해결 방법

권한을 부여해 주자.

$ db.grantRolesToUser('계정명', [{role:'권한', db:'디비명'}])
ex) ryan 계정에 대해서 test_db의 readWrite 권한을 부여한다.
$ db.grantRolesToUser('ryan', [{role:'readWrite', db:'test_db'}])

 

Role 종류

범위 Role 명 기능
데이터베이스 사용자 Role read 컬렉션에 대한 데이터를 읽을 수 있는 기능 제공
데이터베이스 사용자 Role readWrite read/write 기능 제공
데이터베이스 관리 Role dbAdmin 스키마 관련 작업, 인덱싱 및 통계 수집과 같은 관리 작업을 수행하는 기능을 제공
데이터베이스 관리 Role dbOwner db에 대해 모든 관리 작업을 수행
데이터베이스 관리 Role userAdmin db에 대한 Role과 사용자를 만들고 수정하는 기능을 제공
클러스터 관리 Role clusterManager 클러스터에 대한 관리 및 모니터링 작업을 제공
클러스터 관리 Role clusterMonitor MongoDB Cloud Manager 및 Ops Manager 모니터링 에이전트와 같은 모니터링 도구에 대한 읽기 전용 액세스를 제공
클러스터 관리 Role hostManager 서버를 감시 및 관리하는 기능 제공
백업 및 복원 역할 backup 데이터 백업에 필요한 최소한의 권한을 제공
백업 및 복원 역할 restore 백업에서 데이터를 복원하는 데 필요한 권한을 제공
모든 데이터베이스 Role readAnyDatabase 모든 데이터베이스에 대해 read와 동일한 권한을 제공
모든 데이터베이스 Role readWriteAnyDatabase 모든 데이터베이스에 대해 readWrite와 동일한 권한을 제공
모든 데이터베이스 Role userAdminAnyDatabase 로컬 및 설정을 제외한 모든 데이터베이스에서 userAdmin과 동일한 사용자 관리 작업에 액세스할 수 있다.
모든 데이터베이스 Role dbAdminDatabase dbAdmin과 동일한 권한을 제공
수퍼 유저 Role root 작업 및 모든 리소스에 대한 액세스 제공
아래 역할을 가지고 있다.
수퍼 유저 Role __system 복제 세트 구성원 및 인스턴스와 같은 클러스터 구성원을 나타내는 사용자 개체에 이 역할을 할당

 

 

반응형
Comments