Linux下mongodb用户管理和设置远程登陆
折騰了下linux服務器上的mongodb的遠程登陸,遇到了點問題,在這里記錄下來。以備以后查詢。
前提:已經在linux上安裝好了mongodb。安裝方法這里不說了,網上各種有。
本地用到的工具(windows):mongoChef(一個可視化操作工具,可以用于3.xx版本,romongo不行)
首先vim /etc/mongodb.conf。將
auth=true //把#注釋去掉,安全起見,遠程登陸需要用戶驗證 #bind_ip 127.0.0.1 //注釋掉這句,表明允許遠程連接,或者指點允許遠程登陸的ip重啟數據庫 /etc/init.d/mongodb restart
然后連接到數據庫
use admin //創建root用戶,root用戶既可以創建用戶,也可以對任何數據庫操作,權限最高的 db.createUser( ... { ... user: "xxxx", ... pwd: "xxx", ... roles: [ ... { role: "root", db: "admin" } //這里的role是設置用戶的角色 ,db是指屬于哪個數據庫 ... ] ... } ... )//或者一般情況下不用root用戶,而是創建一個管理用戶權限的用戶,注意這個用戶只有管理用戶權限的權力,而沒有對其他數據庫操作的權利 db.createUser( ... { ... user: "tanjiahui", ... pwd: "123456@qq", ... roles: [ { role: "root", db: "admin" } ] ... } ... )對用戶進行認證
db.auth("name","passwd"); //返回了1表示成功如果用戶的權限不足的時候會報錯
not authorized xxxxx一些小tips:
如果忘記了用戶的密碼之類的,可以通過把auth:true注釋再重啟數據庫再對用戶進行相關創建。
- 常用的role值:
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root
// 這里還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system
- 相應的功能
- Read:允許用戶讀取指定數據庫
- readWrite:允許用戶讀寫指定數據庫
- dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
- userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫里創建、刪除和管理用戶
- clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
- readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
- readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
- userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
- dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
- root:只在admin數據庫中可用。超級賬號,超級權限
然后就可以通過我們的mongochef對數據庫進行遠程連接了
連接后進行用用戶認證,再測試相關命令
出現上圖即表示成功連接到遠程數據庫了。
總結
以上是生活随笔為你收集整理的Linux下mongodb用户管理和设置远程登陆的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解C++中的explicit关键字
- 下一篇: linux telnet 权限,允许te