MongoDB는 처음부터 모든 기능을 다 쓸 수 있길래 유저를 생성하는 기능이 없는 줄 알았는데 찾아보니 있었다.


생각해보면 당연한 기능인데 의식하지 않고 있었다는 느낌이다. 원격접근이 자유롭다면 그건 보안에 매우 취약할테니 말이다.


사용한 버전은 MongoDB 3.6이다.




기본은 아래와 같다.


db.createUser(user, writeConcern)



1. admin 계정 생성하기


먼저 admin 계정을 생성하기 위해서 admin 데이터베이스에 접속해야 한다.


그 후 취향에 맞게 역할을 추가하면 된다. 여기서 admin 계정이므로 dbAdmin을 추가하도록 하겠다.


>use admin


>db.createUser({

+    user: "계정이름",

+    pwd: "비밀번호".

+    roles:["dbAdminAnyDatabase"]

+})



2. 데이터베이스용 계정 생성하기


각 데이터 베이스용 계정을 추가 할 수도 있다.


사용할 데이터베이스에 접속하여 만들어도 되고 아니면 계정을 만들 때 데이터 베이스를 할당해줘도 된다.


(1)데이터 베이스에 접속해서 만들기


>use test


>db.createUser({

+    user: "계정이름",

+    pwd: "비밀번호",

+    roles:["readWrite", "userAdmin"]

+})


(2)계정을 생성할 때 데이터 베이스를 할당하기


(아무 데이터 베이스에 접속)


>db.createUser({

+    user: "계정이름",

+    pwd: "비밀번호",

+    roles:[{role:"read", db:"test"}, {role:"clusterAdmin",db:"myDB"}]

+})




3. 계정 삭제하기


계정 삭제는 삭제할 계정이 있는 데이터 베이스에 가거나 admin 데이터베이스로 가서 해주면 된다.


>use admin


>db.dropUser("계정이름")





더 자세한 내용이나 적용 가능한 Role에 대한 의문은 ref.에 있는 mongoDB | Documentation에서 확인하면 된다.




ref.

FREEZNER.COM / [MONGODB]관리자 계정 추가/삭제하기

-http://blog.freezner.com/archives/1040 


mongoDB | Documentation / db.createUser()

-https://docs.mongodb.com/manual/reference/method/db.createUser/


mongoDB | Documentation / Built-In Roles

-https://docs.mongodb.com/manual/reference/built-in-roles/#database-administration-roles


mongoDB | Documentation / mongo Shell Methods

-https://docs.mongodb.com/manual/reference/method/#role-management-methods

+ Recent posts