1. 程式人生 > >MongoDB使用者授權和管理

MongoDB使用者授權和管理

MongoDB使用者授權和管理

2017年02月15日 15:40:04 奮鬥吧_攻城獅 閱讀數:6974 標籤: mongodbshell 更多

個人分類: MongoDB

1、mongodb安裝好後第一次進入是不需要密碼的,也沒有任何使用者,通過shell命令可直接進入,cd到mongodb目錄下的bin資料夾,執行命令./mongo即可 
執行如下:

[root@namenode mongodb]# ./bin/mongo
MongoDB shell version: 1.8.2
connecting to: test
> use test;
switched to db test
  • 1
  • 2
  • 3
  • 4
  • 5

2、新增管理使用者(mongoDB 沒有無敵使用者root,只有能管理使用者的使用者 userAdminAnyDatabase),

>use admin
>db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
  • 1
  • 2

注:新增完使用者後可以使用show users或db.system.users.find()檢視已有使用者

3、新增完管理使用者後,關閉MongoDB,並使用許可權方式再次開啟MongoDB,這裡注意不要使用kill直接去殺掉mongodb程序,(如果這樣做了,請去data/db目錄下刪除mongo.lock檔案),可以使用db.shutdownServer()

關閉

4、使用許可權方式啟動MongoDB

./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongod.log --fork --auth
  • 1

或者在配置檔案中修改:

 auth = true
#noauth = true
  • 1
  • 2

5、進入mongo shell,使用admin資料庫並進行驗證,如果不驗證,是做不了任何操作的。

> use admin
> db.auth("admin","123456")   #認證,返回1表示成功
  • 1
  • 2

6、驗證之後還是做不了操作,因為admin只有使用者管理許可權,下面建立使用者,使用者都跟著庫走,

> use mydb
> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})
  • 1
  • 2

7、使用建立的使用者root登入進行資料庫操作:

[root@localhost mongodb]# mongo 127.0.0.1/mydb -uroot -p
MongoDB shell version: 3.2.9
Enter password:
connecting to: 127.0.0.1/mydb
> db
mydb
> use mydb
switched to db mydb
> show collections
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

或者使用: 
./mongo -u username -p password --port port --authenticationDatabase databaseName 
./mongo databaseName -u username -p password --port port

然後就可以進行增刪改查各種資料操作…

8、檢視已存在的使用者

> db.system.users.find()
  • 1

9、刪除使用者

> use mydb
> db.system.users.remove({user:"root"})
> db.system.users.find()