mongodb用戶權限操作常用命令
阿新 • • 發佈:2018-06-11
mongodb 由於公司還有幾臺mongodb的數據庫,需要開放某部分權限給外部人員使用,所以這裏記錄一下,僅供需要的朋友使用。
1. MongoDB常用命令
[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. 授權步驟
>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上面的數據
mongodb用戶權限操作常用命令