因爲公司還有幾臺mongodb的數據庫,須要開放某部分權限給外部人員使用,因此這裏記錄一下,僅供須要的朋友使用。
mongodb
1. MongoDB經常使用命令shell
[root@snails ~]# ps -ef|grep mongod [root@snails ~]# mongo --host=127.0.0.1 --port=27017 MongoDB shell version: 3.2.7 connecting to: 127.0.0.1:27017/test > show dbs #顯示數據庫列表 > show collections #顯示當前數據庫中的集合(相似關係數據庫中的表) > show users #顯示用戶 > use <db name> #切換當前數據庫,若是數據庫不存在則建立數據庫。 > db.help() #顯示數據庫操做命令,裏面有不少的命令 > db.foo.help() #顯示集合操做命令,一樣有不少的命令,foo指的是當前數據庫下,一個叫foo的集合,並不是真正意義上的命令 > db.foo.find() #對於當前數據庫中的foo集合進行數據查找(因爲沒有條件,會列出全部數據) > db.foo.find( { a : 1 } ) #對於當前數據庫中的foo集合進行查找,條件是數據中有一個屬性叫a,且a的值爲1 > db.dropDatabase() #刪除當前使用數據庫 > db.cloneDatabase("127.0.0.1") #將指定機器上的數據庫的數據克隆到當前數據庫 > db.copyDatabase("mydb", "temp", "127.0.0.1") #將本機的mydb的數據複製到temp數據庫中 > db.repairDatabase() #修復當前數據庫> db.getName() #查看當前使用的數據庫,也能夠直接用db > db.stats() #顯示當前db狀態 > db.version() #當前db版本> db.getMongo() #查看當前db的連接機器地址 > db.serverStatus() #查看數據庫服務器的狀態
2. 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數據庫中可用。超級帳號,超級權限
3. 受權步驟bash
>mongo --host 127.0.0.1 --port 27018 >use dbname; >db.createUser({user:"root",pwd:"root123",roles:["userAdminAnyDatabase"]}) Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] } 這個例子建立了一個名爲 root 的用戶管理員。建立完了這個用戶以後,咱們應該立刻以該用戶的身份登陸: > db.auth("root","root123") 1 db.auth() 方法返回 1 表示登陸成功。接下來咱們爲指定的數據庫建立訪問所需的帳號。
注意:使用密碼策略須要先在配置文件中增長 auth=true。而且mongo在從模式下面是不容許操做密碼策略的,主要應該是屬於只讀模式,只負責同步master上面的數據服務器