node.js 교과서를 보며 mongoDB 초기 설정을 하고 있는데 admin db에서 사용자 추가가 불가능한 문제가 발생했다.
2021-04-12T09:31:08.997+0900 E QUERY [js] uncaught exception: Error: couldn't add user: command createUser requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1370:11
인증이 필요하다는데, 그 인증을 위한 사용자를 만드는 중인디...
이는 /etc/mongod.conf에서 security.authorization
이 true로 설정되어 있기 때문이었다.
책에서 사용하던 버전에서는 원래 주석처리되어 있었는지 이후에 추가하도록 되어있는데, 이번에 설치한 4.2.9 버전에서는 처음부터 작성되어 설치되어서 문제가 되었다.
잠깐 주석 처리하고 sudo service mongod restart
하니 정상적으로 admin 사용자를 추가할 수 있었다!
> use admin
switched to db admin
> db.createUser({ user: 'havebeen', pwd: **********, roles: ['root'] })
Successfully added user: { "user" : "havebeen", "roles" : [ "root" ] }
이 후에 잊지 말고 주석처리한 security.authorization
를 다시 되돌려주자.
2017년에는 아래와 같은 일도 있었다고 한다...
일주일동안 27,000개 이상의 MongoDB가 랜섬웨어에 감염돼
http://blog.alyac.co.kr/923