mongodb用戶權限操做經常使用命令

    因爲公司還有幾臺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上面的數據服務器

相關文章
相關標籤/搜索