Web programming/트러블슈팅

MongoServerError: user is not allowed to do action [insert] on [test.users]

goldpig 2023. 8. 21. 12:37
728x90

회원가입 기능을 구현하는 백엔드 부분에서 Axios라이브러리를 활용해서 HTTP 비동기 통신을 하는 과정에서 thunkFunctions.js:8 POST http://localhost:4000/users/register 500 (Internal Server Error) 라는 오류가 계속 발생해서 처음에는 클라언트 측면에서 요청하는데 문제가 있나 코드를 계속 수정해보고 했는데도, 에러가 계속 발생해서 골머리를 앓았다. 그러다가 클라이언트 측에서 Axios를 활용한 요청 부분에는 문제가 없다고 판단하고 에러가 500번대 이니깐 서버측에서 요청을 받고 처리하는 과정에서 문제가 있다고 판다.

트러블슈팅 (Troubleshooting)

처음에는 요청을 받고 처리하는 부분에서 경로에 문제가 있나 확인한 후 문제가 없다고 생각했다. 그리고나서 아래 사진 처럼 에러 객체를 직접 확인해야겠다 싶어서 console.log('에러가 발생하였습니다' , error) 작성하고 확인해 보니 몽고DB에 문제가 있음을 발견하였다. 해당 회원가입 프로젝트를 진행하는 과정에서 집 인터넷을 바꿔서 혹시나 IP 문제로 인해서 발생하는가 싶어서 Network Access부분을 모든 IP가 접근할 수 있도록 설정했는데, 해결되지 않아 이 부분은 해결책이 아니라 생각하고 다시 원래 내 IP로 설정해주었다.

MongoServerError: user is not allowed to do action [insert] on [test.users] 해당오류 발생.

몽고 DB를 처음 사용하는거라 익숙하지 않아 project를 삭제하고 처음부터 new project를 생성하고 cluster를 만들고 user를 생성하고 다시 회원가입을 실행시켜보니 다시 에러가 발생했다. 그래서 구글링을 해보니 해당 오류는 사용자 관리자 권한이 설정되어 있지 않아서 발생하는 오류임을 확인할 수 있었다. 

그래서 아래와 같은 과정을 겪었더니 문제를 해결할 수 있었다. 우선 user에게 권한을 설정하기 위해 Database Access 항목에 들어갔다.

이제 EDIT button을 눌러 권한을 설정해 주어야 한다.

처음에는 Buili-in Role 부분이 아무것도 설정이 되어있지 않을 것이다. 이부분을 Atlas admin으로 설정을 해주면 문제를 해결할 수 있다.

 

728x90