1. 程式人生 > >MongoDB開啟許可權驗證及設定使用者名稱密碼

MongoDB開啟許可權驗證及設定使用者名稱密碼

一、MongoDB資料庫角色

內建的角色

資料庫使用者角色:read、readWrite;

資料庫管理角色:dbAdmin、dbOwner、userAdmin;

叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

備份恢復角色:backup、restore;

所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

超級使用者角色:root // 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)

內部角色:system

角色說明:

Read:允許使用者讀取指定資料庫

readWrite:允許使用者讀寫指定資料庫

dbAdmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile

userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者

clusterAdmin:只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權。

readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權

readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權

userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權

dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。

root:只在admin資料庫中可用。超級賬號,超級許可權

 

二、MongoDB使用者的操作

1.新建管理員使用者

>use admin
 > db.createUser(
    {
	user: "adminUser",
	pwd: “admin123”,
	roles: [{role: ”userAdminAnyDatabase”,db:”admin”}]
    }
  )


#結果
> Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
  }

 

 

2.建立普通使用者

  >use foo
  >show roles #可以檢視角色
  > db.createUser(
    {
	user: "simpleUser",
	pwd: “123456”,
	roles: [“readWrite”,”dbAdmin”,”userAdmin”]
    }
  )

3.檢視已存在的使用者

>db.system.users.find()

 

4.刪除使用者

>db.system.users.remove({user:”simpleUser”})

 

注:在操作使用者時,啟動mongod服務時儘量不開啟授權

 

三、開啟許可權驗證

   在啟動時指定--auth即需要授權才能操作

  

 #開啟服務
 > mongod  --auth --dbpath /home/user1/mongodb/data  --logpath  /home/user1/mongodb/log/logs  --fork
 #客戶端連線並認證
 >mongo
 >use foo
 >db.auth(“simpleUser”,”123456”)

每次只有認證後才能操作資料

 

參考地址:https://blog.csdn.net/u013066244/article/details/53874216

https://blog.csdn.net/qq_32502511/article/details/80619277