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