MongoDB 사용자 권한 문제 해결하기 : Unauthorized (error 13)

ZEDY·2024년 6월 17일
0

[Backend] 서버 개발

목록 보기
10/10

개발 환경 : Mac, Server-AWS Ubuntu

MongoDB 사용자 권한 문제 해결하기

문제 상황

최근 프로젝트에서 MongoDB를 사용하면서, Spring Boot 애플리케이션이 MongoDB에 데이터를 업데이트할 때 Unauthorized (error 13) 오류가 발생했습니다. 오류 메시지는 다음과 같습니다.

{
  "timestamp": 1718617786894,
  "status": 500,
  "error": "Internal Server Error",
  "trace": "org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 13 (Unauthorized): 'not authorized on mobby to execute command 
}

원인 분석

오류 메시지를 분석한 결과, MongoDB 사용자가 mobby 데이터베이스에서 update 명령을 실행할 권한이 없음을 알 수 있었습니다. show users 명령을 통해 사용자 권한을 확인한 결과, 사용자가 dbAdmin 권한만 가지고 있었으며, 이는 데이터베이스 구조 관리 권한만 제공하고 데이터 읽기/쓰기 권한은 포함하지 않음을 확인했습니다.

[
  {
    _id: 'mobby.zetawayv',
    userId: ~~~,
    user: 'zetawayv',
    db: 'mobby',
    roles: [ { role: 'dbAdmin', db: 'mobby' } ],
    mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
  }
]

해결 방법

zetawayv 사용자에게 mobby 데이터베이스에 대한 readWrite 권한을 추가로 부여하기로 결정했습니다. 다음은 문제를 해결하기 위해 수행한 단계입니다.

1. 관리자 권한으로 MongoDB Shell 접속

먼저, mongosh를 사용하여 MongoDB에 접속합니다.

mongosh

2. 관리자 데이터베이스로 이동

admin 데이터베이스로 이동하여 관리자 권한으로 로그인합니다.

use admin
db.auth("adminUsername", "adminPassword")

3. mobby 데이터베이스로 이동

mobby 데이터베이스로 이동합니다.

use mobby

4. zetawayv 사용자에게 readWrite 권한 부여

다음 명령을 사용하여 zetawayv 사용자에게 readWrite 권한을 부여합니다.

db.grantRolesToUser("zetawayv", [{role: "readWrite", db: "mobby"}])

5. 사용자 권한 확인

권한이 제대로 부여되었는지 확인하기 위해 사용자 정보를 다시 조회합니다.

db.getUser("zetawayv")

출력 결과는 다음과 같이 readWrite 권한이 추가된 것을 확인할 수 있습니다.

{
  "user": "zetawayv",
  "db": "mobby",
  "roles": [
    { "role": "dbAdmin", "db": "mobby" },
    { "role": "readWrite", "db": "mobby" }
  ],
  "mechanisms": [ "SCRAM-SHA-1", "SCRAM-SHA-256" ]
}

최종 결과

이제 zetawayv 사용자는 mobby 데이터베이스에서 데이터를 읽고 쓸 수 있는 권한을 가지게 되었습니다. Spring Boot 애플리케이션을 다시 실행한 후 데이터 업데이트가 정상적으로 수행되는 것을 확인했습니다.

이번 문제 해결 과정을 통해 MongoDB의 권한 설정과 관리의 중요성을 다시 한번 깨달았습니다. 데이터베이스 접근 권한을 올바르게 설정하는 것은 보안과 데이터 무결성을 유지하는 데 매우 중요합니다. 앞으로도 이러한 문제를 미리 방지할 수 있도록 권한 관리를 철저히 해야겠습니다.

이상으로 MongoDB 사용자 권한 문제를 해결한 과정을 공유합니다. 도움이 되셨길 바랍니다.

해결 완~

profile
IT기획/운영

0개의 댓글