1. 程式人生 > >mongoDB使用者和密碼的相關操作

mongoDB使用者和密碼的相關操作

前兩天寫了一篇安裝mongoDB的部落格,今天講一講如何給mongoDB設定許可權。mongoDB預設是不開啟密碼的,並且在之前的mongoDB版本中曾經有一個非常嚴重的bug,導致黑客可以通過你開放的mongoDB服務埠直接登入你的伺服器,之前不知道這個bug,所以沒有設定許可權,結果就中招了。所以,開放mongoDB服務加上連線許可權的一個必要的事情。

新增資料庫管理員

首先,我們要給資料庫新增一個管理員,這個身份的使用者可以操作所有的database,管理所有的使用者,新增的時候要記錄好使用者名稱及密碼

$ mongo                // 連線資料庫

use admin               // 切換資料庫
db.createUser( { user: "adminName", pwd: "*****", roles: [ { role: "clusterAdmin", db: "admin" }, { role: "readAnyDatabase", db: "admin" }, "readWrite"] }, { w: "majority", wtimeout: 5000 } )

給其他資料庫新增對應的讀寫使用者

use test          // 切換資料庫
db.createUser({
    user: "test"
, pwd: "*****", roles: [ { role: "read", db: "reporting" }, // reporting資料庫讀許可權 { role: "readWrite", db: "accounts" } // accounts資料庫讀寫許可權 ] })

開啟mongoDB驗證模式

以上新增使用者的操作是在mongoDB未開啟驗證模式時進行的,新增完使用者之後我們需要關閉mongoDB,然後以驗證模式重新啟動,之後未驗證使用者名稱密碼時操作資料庫會提示沒有許可權

// -f 使用引數檔案,--auth 開啟驗證,--fork 以後臺服務的形式啟動
$ mongod start -f /etc/mongo.conf --auth --fork $ mongo > show users 2016-09-17T10:52:08.058+0800 E QUERY [thread1] Error: not authorized on test to execute command { usersInfo: 1.0 } : _get[email protected]/mongo/shell/utils.js:25:13 [email protected]/mongo/shell/db.js:1523:1 [email protected]/mongo/shell/utils.js:744:9 [email protected]/mongo/shell/utils.js:651:15 @(shellhelp2):1:1 > use test > db.auth('username', 'password') // 驗證使用者名稱密碼

管理使用者

use products
// 更新使用者資訊
db.updateUser("username", {
    customData : { <any information> },
    roles : [
        { role: "<role>", db: "<database>" } | "<role>"
    ],
    pwd: "<cleartext password>"
})

// 更改使用者密碼
db.changeUserPassword("username", "new password")

// 刪除所有使用者
db.dropAllUsers({w: "majority", wtimeout: 5000})

// 刪除單個使用者
db.dropUser("username", {w: "majority", wtimeout: 5000})

// 更改使用者角色
db.grantRolesToUser(
    "username",
    [ "readWrite" , { role: "read", db: "test" } ],
    { w: "majority" , wtimeout: 5000 }
)

// 刪除使用者角色
db.revokeRolesFromUser(
    "username", 
    [ { role: "read", db: "test" }, "readWrite" ], // 移除使用者讀test資料庫的許可權以及所有的讀寫許可權
    { w: "majority" }
)

// 獲取使用者資訊
db.getUser("username")

// 獲取所有使用者資訊
db.getAllUsers()

相關推薦

mongoDB使用者密碼相關操作

前兩天寫了一篇安裝mongoDB的部落格,今天講一講如何給mongoDB設定許可權。mongoDB預設是不開啟密碼的,並且在之前的mongoDB版本中曾經有一個非常嚴重的bug,導致黑客可以通過你開放的mongoDB服務埠直接登入你的伺服器,之前不知道這個bug

mysql的庫相關操作

ear dml 枚舉類型 mysqld grant 文件路徑 關系數據庫 通用 非關系型 一、數據庫介紹1、數據庫的由來我們之前所學,數據要想永久保存,都是保存於文件中,毫無疑問,一個文件僅僅只能存在於某一臺機器上,這樣就帶來了許多問題:(1)程序所有的組件就不可能運行在一

0024-利用OpenCV的filter2D函式作影象的卷積操作相關操作

影象的卷積操作是影象處理中最常用的操作之一,一般是用核算子來實現卷積操作。什麼叫核算子?請移步博文https://blog.csdn.net/lehuoziyuan/article/details/84101788 OpenCV用函式filter2D來實現對影象或矩陣的卷積操作。這個函式本質上做

佇列相關操作

棧的相關操作: #pragma once typedef int StackTypeData; #define MAX_SIZE 100 typedef struct Stack { StackTypeData array[MAX_SIZE]; int top;//棧的元素個數 }S

Hadoop偽分散式環境搭建MapReduce環境搭建hdfs相關操作疑難

這篇博文詳細講解了Hadoop偽分散式環境搭建,非常棒。此外,我這裡記錄一些其他相關內容,備忘。使用hadoop-eclipse-plugin-2.6.0.jar來構建MapReduce框架的Eclipse開發環境,這裡先給出這個外掛的連結,由於本人沒有什麼有價值的資源,所以

condapip相關操作

1.conda建立、刪除、啟用和退出環境 建立:conda create -n [name] python=[version] 刪除:conda remove -n [name] --all 啟用:source/conda activate [name] 退出:source/conda deactiv

Python字串字典相關操作

字串操作: 字串的 % 格式化操作: str = "Hello,%s.%s enough for ya ?" values = ('world','hot') print str % values 輸出結果: Hello,world.hot enough for

10、自學——Linux的學習進度與任務【用戶用戶組相關操作

sha256 用戶授權 gpasswd upm 登錄 shel 默認 不同 管理 用戶和用戶組相關操作 用戶和用戶組定義:     用戶:資源獲取標識符(資源分配),是安全權限模型的可信要素之一      用戶組:用戶組是指多個用戶的集合,方便對一類需要同樣權限的用戶授權

mongodb配置基本操作

特性 服務 win done service 基本 添加 close english MongoDB3.0新特性WiredTigerMMAPv1可插拔引擎API基於web的可視化管理工具 查看版本號mongod --version啟動數據庫 mongod --dbpath

Python獲取個人網站的所有課程下載鏈接密碼,並保存到Mongodb

one find() net agent play col pat 進行 jpg 1、獲取網站課程的分類地址; ‘‘‘ 爬取屌絲首頁,獲取每個分類名稱和鏈接 ‘‘‘ import requests from lxml import etree headers = {

關於Linq對DataTableList各自的兩個集合篩選的相關操作技巧

linq per enume any rom opera 操作技巧 得到 數據集 項目中用到了對兩個集合的帥選等操作,簡單總結下 1.Linq操作多個Datable 可以通過AsEnumerable()方法對DataTable進行Linq操作 //獲取數據表所有數據

mongodb設置用戶名密碼

新建 建數據庫 一個數 普通 auth tab min you manager 需求:我們需要在一個mongodb上面新建兩個數據庫,每個數據庫的用戶名和密碼不一樣,講道理來說我們直接設置admin,就可以控制所有的數據庫,不過用起來總是感覺有各種問題,目前還不太熟悉mon

Tomcatmyeclipse的相關操作以及myeclipse的激活方法

java部署WEB應用:1、創建應用目錄2、創建WEB-INF3、Classes、lib、web、xml(examples)4、創建Servlet:A、創建類 implements ServletB、Service(request,response)C、實現代碼5、編譯ServletJavac -d . h

LINUX系統---初級相關操作知識

www mys apach lis -type cnblogs 管理 安裝linux系統 tomcat   LINUX系統的初級,從安裝LINUX開始,到處理簡單的運維問題、搭建各種服務、解決網路問題、緩解服務器壓力,寫簡單的shell腳本。   我們從基本的入門開始搞事情

LINUX系統---中級相關操作知識

div blog pos one 相關 inux 公司 -type 熱備   LINUX系統的中級,來搞一些LINUX安全相關的東西,還有在公司生成中長搞的集群。 RHCS集群 什麽是高可用 什麽是熱備 什麽是分布式 LINUX系統---中級相關操作和知識

MongoDB相關操作

操作 ins 若有 god 更新 屬性修改 創建 pre upd 1. 連接MongoDB <?php //1.連接到MongoDB $host = "127.0.0.1"; $port = 27017; $server = "mo

《Linux學習並不難》Linux常用操作命令(6):uname命令顯示計算機系統相關信息

Linux8.6 《Linux學習並不難》Linux常用操作命令(6):uname命令顯示計算機和系統相關信息 使用uname命令可以顯示計算機以及操作系統的相關信息,比如計算機硬件架構、內核發行號、操作系統名稱、計算機主機名等。 命令語法: uname [選項] 命令中各選項的

PHP7操作MongoDB的增刪改查分頁操作

mongodb mongodb分頁 php7 原文博客地址www.xiegaosheng.com/post/view?id=96;<?php /** * Class MongodbClient * mongod操作類 *如果需要自己也可以改成單例模式 */ class Mongod

6月20日 Django中ORM介紹字段、字段參數、相關操作

sel 記憶 __init__ 記錄 RM 錯誤 distinct serial 排序。 Object Relational Mapping(ORM) ORM介紹 ORM概念 對象關系映射(Object Relational Mapp

Django框架詳細介紹---ORM相關操作---select_relatedprefetch_related函數對 QuerySet 查詢的優化

ger AS AI 出版社 獲得 har 有效 object 庫存 Django的 select_related 和 prefetch_related 函數對 QuerySet 查詢的優化 引言   在數據庫存在外鍵的其情況下,使用select_related()和pref