摘要:本文將重點(diǎn)介紹的用戶和權(quán)限這一部分。結(jié)果返回,表示管理員登錄成功。接下來(lái),用這個(gè)管理員給數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)普通用戶,并指定其權(quán)限為。
前言
對(duì)于數(shù)據(jù)庫(kù)而言,用戶和權(quán)限是非常重要的一部分,因?yàn)檫@涉及到安全,那么mongoDB的用戶和權(quán)限是怎么樣的呢?
說(shuō)明 環(huán)境說(shuō)明本文所用的mongoDB版本是3.6,操作系統(tǒng)是windows。
其他說(shuō)明限于篇幅,本文不會(huì)介紹數(shù)據(jù)庫(kù)從下載到安裝的過(guò)程,關(guān)于安裝教程,網(wǎng)上有大量教程,你可以按照這些教程把它裝好跑起來(lái)。本文將重點(diǎn)介紹mongoDB的用戶和權(quán)限這一部分。
服務(wù)端和客戶端對(duì)于mongoDB,分為服務(wù)端和客戶端。
在windows環(huán)境的安裝目錄下,直接雙擊打開(kāi)mongod.exe,即可開(kāi)啟mongoDB服務(wù)。
當(dāng)服務(wù)開(kāi)啟后,便可以雙擊mongo.exe打開(kāi)客戶端來(lái)連接到mongoDB服務(wù)。
mongoDB安裝后,如果直接用mongod.exe開(kāi)啟服務(wù),默認(rèn)是沒(méi)有開(kāi)啟授權(quán)模式的,如果你的mongoDB沒(méi)有開(kāi)啟授權(quán)模式,那么任何人都不需要用戶名和密碼也可以登錄到mongoDB服務(wù)端,對(duì)你的數(shù)據(jù)庫(kù)為所欲為,甚至直接刪庫(kù)跑路。所以,在產(chǎn)品環(huán)境中,請(qǐng)確保一定記得開(kāi)啟授權(quán)模式。
那么,怎么開(kāi)啟授權(quán)模式呢?
打開(kāi)cmd,進(jìn)入到安裝目錄的bin目錄下,執(zhí)行如下命令:
mongod --auth --port 27017 --dbpath /data/db
開(kāi)啟了授權(quán)模式后,打開(kāi)mongo.exe,在admin數(shù)據(jù)庫(kù)下,執(zhí)行show dbs,這時(shí),數(shù)據(jù)庫(kù)會(huì)報(bào)錯(cuò),提醒沒(méi)有授權(quán)。如下:
mongoDB數(shù)據(jù)庫(kù),大致分為兩類(lèi)用戶,一種是管理員用戶,一種是普通用戶。
管理員我們?cè)赼dmin數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)管理員用戶(userAdmin or userAdminAnyDatabase role),管理員用戶可以管理普通用戶。
首先,以非授權(quán)模式開(kāi)啟mongoDB服務(wù)。
mongod --port 27017 --dbpath /data/db
然后進(jìn)入admin數(shù)據(jù)庫(kù),執(zhí)行如下命令:
use admin db.createUser( { user: "larry", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
當(dāng)提示Successfully added user,證明這個(gè)管理員用戶已經(jīng)添加成功。
普通用戶當(dāng)管理員用戶創(chuàng)建成功后,我們便可以用這個(gè)管理員用戶來(lái)給每個(gè)數(shù)據(jù)庫(kù)來(lái)創(chuàng)建普通用戶。
首先,關(guān)閉上面所有的mongo shell窗口。
再以授權(quán)模式開(kāi)啟mongoDB服務(wù)。
mongod --auth --port 27017 --dbpath /data/db
打開(kāi)mongo.exe客戶端,進(jìn)入admin數(shù)據(jù)庫(kù),用db.auth()登錄。
第一個(gè)參數(shù)是上面創(chuàng)建的管理員用戶名larry,第二個(gè)參數(shù)是管理員用戶larry的密碼。
結(jié)果返回1,表示管理員larry登錄成功。
接下來(lái),用這個(gè)管理員給photo_app數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)普通用戶moddx,并指定其權(quán)限為readWrite。
use photo_app db.createUser( { user: "moddx", pwd: "123456", roles: [{ role: "readWrite", db: "photo_app"}] } )查看用戶 全局所有賬戶
首先,要以管理員賬戶登錄到admin數(shù)據(jù)庫(kù),接著執(zhí)行如下命令:
db.system.users.find().pretty()當(dāng)前庫(kù)下的賬戶
查看全局所有賬戶,只有管理員才可以查看,而查看當(dāng)前庫(kù)中的帳號(hào),普通用戶和管理員用戶都可以查看,查看當(dāng)前庫(kù)下的帳號(hào)命令如下:
show users刪除用戶
必須擁有dropUser權(quán)利的管理員帳號(hào)才能刪除用戶,所以,需要用管理員賬戶登錄進(jìn)行操作。
刪除myblog數(shù)據(jù)庫(kù)中普通用戶moddx的命令如下:
use myblog db.dropUser("moddx", {w: "majority", wtimeout: 5000})撤銷(xiāo)權(quán)限
撤銷(xiāo)一個(gè)用戶的權(quán)限,命令如下:
db.revokeRolesFromUser( "moddx", [ { role: "readWrite", db: "photo_app" } ] )
注意:上面命令雖然撤銷(xiāo)了moddx用戶在photo_app數(shù)據(jù)庫(kù)中的讀寫(xiě)權(quán)限,但是,用戶并沒(méi)有刪除,依舊可以登錄。
授予權(quán)限如下命令給了用戶moddx在photo_app中的讀寫(xiě)權(quán)限,同時(shí),給予了他在demodb數(shù)據(jù)庫(kù)中的讀權(quán)限
use photo_app db.grantRolesToUser( "moddx", [ "readWrite" , { role: "read", db: "demodb" } ], { w: "majority" , wtimeout: 4000 } )修改密碼
如下命令修改了photo_app中用戶moddx的密碼:
use photo_app db.changeUserPassword("moddx", "newpwd")小結(jié)
關(guān)于用戶和權(quán)限部分,常用shell操作命令就這些,希望能夠?qū)δ闶褂胢ongoDB帶來(lái)方便。如果你需要更詳細(xì)的的介紹,請(qǐng)參考官方文檔:mongo shell methods
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19333.html
摘要:前言上一篇中初階系列一用戶和權(quán)限介紹了用戶和權(quán)限,這一篇將介紹如何在中進(jìn)行增刪改查。這是初階系列的第二篇,接下來(lái)還有第三篇,借助,更優(yōu)雅地操作數(shù)據(jù)。 前言 上一篇中(mongoDB初階系列一:用戶和權(quán)限)介紹了用戶和權(quán)限,這一篇將介紹如何在node中進(jìn)行增刪改查。 準(zhǔn)備 首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mo...
摘要:前言上一篇中初階系列一用戶和權(quán)限介紹了用戶和權(quán)限,這一篇將介紹如何在中進(jìn)行增刪改查。這是初階系列的第二篇,接下來(lái)還有第三篇,借助,更優(yōu)雅地操作數(shù)據(jù)。 前言 上一篇中(mongoDB初階系列一:用戶和權(quán)限)介紹了用戶和權(quán)限,這一篇將介紹如何在node中進(jìn)行增刪改查。 準(zhǔn)備 首先,要在node中使用mongoDB,需要安裝MongoDB Driver,命令如下:npm install mo...
摘要:前言上篇初階系列二中的增刪改查中講解了用驅(qū)動(dòng)來(lái)對(duì)數(shù)據(jù)進(jìn)行增刪改查,本篇將繼續(xù)前進(jìn),依舊通過(guò)增刪改查來(lái)講解如何用更順暢的操控。查下面這段代碼對(duì)集合進(jìn)行搜索,并輸出每項(xiàng)任務(wù)的唯一和描述,等打印完成后,關(guān)閉數(shù)據(jù)庫(kù)連接。 前言 上篇 mongoDB初階系列二:node中的增刪改查 中講解了用node驅(qū)動(dòng)來(lái)對(duì)數(shù)據(jù)進(jìn)行增刪改查,本篇將繼續(xù)前進(jìn),依舊通過(guò)增刪改查來(lái)講解如何用mongoose更順暢的操...
摘要:前言上篇初階系列二中的增刪改查中講解了用驅(qū)動(dòng)來(lái)對(duì)數(shù)據(jù)進(jìn)行增刪改查,本篇將繼續(xù)前進(jìn),依舊通過(guò)增刪改查來(lái)講解如何用更順暢的操控。查下面這段代碼對(duì)集合進(jìn)行搜索,并輸出每項(xiàng)任務(wù)的唯一和描述,等打印完成后,關(guān)閉數(shù)據(jù)庫(kù)連接。 前言 上篇 mongoDB初階系列二:node中的增刪改查 中講解了用node驅(qū)動(dòng)來(lái)對(duì)數(shù)據(jù)進(jìn)行增刪改查,本篇將繼續(xù)前進(jìn),依舊通過(guò)增刪改查來(lái)講解如何用mongoose更順暢的操...
摘要:每個(gè)角色只應(yīng)該為該角色授予必要的權(quán)限,并且只應(yīng)該為用戶分配適合其需求的角色。注解如果您還在掌握查詢語(yǔ)言,像這樣的工具有一個(gè)直觀的用戶管理器特性,這使得用戶管理更加直觀和直觀。 本文來(lái)自MongoDB中文社區(qū):http://www.mongoing.com/ 1、介紹 本文討論保護(hù)MongoDB數(shù)據(jù)庫(kù)所需的訪問(wèn)控制。具體來(lái)說(shuō),我們可以使用這些特性來(lái)確保只有經(jīng)過(guò)授權(quán)的用戶才能訪問(wèn)數(shù)據(jù)庫(kù)。每...
閱讀 1502·2021-11-24 11:16
閱讀 2713·2021-07-28 12:32
閱讀 2315·2019-08-30 11:22
閱讀 1455·2019-08-30 11:01
閱讀 611·2019-08-29 16:24
閱讀 3559·2019-08-29 12:52
閱讀 1635·2019-08-29 12:15
閱讀 1346·2019-08-29 11:18