下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > DB2 > MongoDB數據庫的權限管理詳細介紹

          MongoDB數據庫的權限管理詳細介紹

          時間:2024-02-03 17:22作者:下載吧人氣:31

          前幾天網友問MongoDB數據庫權限方面的問題。當時大致的了解了一下,這周仔細了解了一下。對于一個數據庫不可能隨意的訪問,肯定要有寫訪問限制。

          在了解這個之前首先熟悉下shell客戶端。打開shell客戶端的方法:mongo.關閉數據庫引擎的話可以使用db.shutdownServer().

          一、shell命令

          MongoDB的shell提供了一些命令,可以從shell提示符執行它們。

          • help<option>:用于為MongoDB的shell命令顯示語法幫助。option參數允許指定你想得到幫助的特定領域。
          • use<database>:更改當前database句柄。數據庫操作將在當前數據庫句柄上處理。
          • show<option>:根據option參數顯示清單.
          • dbs:顯示數據庫清單。
          • collections:顯示當前數據庫的集合清單。
          • profile:顯示時間超過1毫秒的最新的system.profile條目。
          • log[name]:顯示登錄記憶的最后一段。如果沒指定name,那么使用global。
          • exit:退出數據庫。

          二、shell方法

          MongoDB中的shell提供了許多用于執行管理功能的方法。

          • load(script):在shell內部加載和運行Javascript文件。要對數據庫腳本操作,使用它是一種最好的方式。
          • UUID(string):把一個32字節的十六進制字符串轉換成BSON的UUID。
          • db.auth(username,password):在當前數據庫進行身份認證。

          三、使用shell編寫腳本

          命令、方法和MongoDB shell的數據結構都是基于交互式Javascript的。管理MongoDB的一個很好的方法是創建可以運行多次的腳本,或者可以隨時在特定的時間運行的腳本,如在升級時運行的腳本。腳本文件可以包含任意數量的MongoDB命令,使用javascript代碼,如條件語句和循環。有兩種運行MongoDB shell腳本的方式。

          1.使用–eval

          該–eval參數接受一個Javascript字符串或Javascript文件并啟動MongoDB的shell,并立即執行Javascript。

          2.使用load(script_path)方法運行MongoDB腳本。

          四、管理用戶賬號

          1.創建用戶賬號

          不管是創建用戶管理員賬號還是數據庫管理員賬號都是用addUser()方法添加用戶賬戶,MongoDB 3.0之后用createUser()代替,再用adduser()會提示adduser()不是function,下面的截圖能看到提示,該方法接受一個document對象,允許指定該用戶的用戶名、角色和密碼。下面是document對象可以指定的字段:

          • user string 指定一個唯一的用戶名
          • roles array 指定用戶角色的數組。MongoDB提供了大量可以分配給用戶的角色。角色不同對應的權限也不一樣,這篇主要還是在角色上
          • pwd hashorstring (可選)指定用戶的密碼。在創建用戶時,這可能是一個散列值或字符串,然而它以散列值被存儲在數據庫中。
          • userSource <database> (可選)代替pwd字段,指向具有相同的用戶定義的另一個數據庫。pwd或那個數據庫的userSource然后被用作該用戶的憑據。userSource字段和pwd字段是相互排斥的,一個文檔不能同時包含兩者。
          • otherDBRoles {<database>:[array],<database>:[array]} :(可選) 允許指定這個用戶在其他數據庫中的擁有的角色。它的格式是一個文檔,該文檔用數據庫名稱作為鍵,包括那個數據庫適用于該用戶的角色的數組。

          2.角色

          用戶和角色是多對多的關系,一個用戶可以對應多個角色,一個角色可以擁有多個用戶。用戶角色的不同對應的權限也是不一樣的。下面是一些分配給用戶的常見的角色。

          • read 允許用戶從數據庫的任何集合中讀取數據
          • readAnyDatabase 同read,但針對所有數據庫
          • readwrite提供read的所有功能,并允許用戶寫數據庫中的任何集合,包括插入、刪除和更新文件,以及創建、重命名和刪除集合
          • readWriteAnyDatabase 同readWrite,只是針對所有數據庫
          • dbAdmin 允許用戶讀取和寫入數據庫,以及清理、修改、壓縮、得到統計概要,并進行驗證
          • dbAdminAnyDatabase 同dbadmin,但針對所有數據庫
          • clusterAdmin 允許用戶對MongoDB執行一般的管理,包括連接、集群、復制、列出數據庫、創建數據庫和刪除數據庫
          • userAdmin 允許用戶創建和修改數據庫的用戶賬號
          • userAdminAnyDatabase 同userAdmin,但針對所有的數據庫

          3.刪除用戶賬號

          可以使用removeUser(<username>)方法刪除MongoDB的用戶。需要先切換到該用戶所在的數據庫。在MongoDB 3.0后使用dropUser(<username>),下面配置時截圖就能看到提示。

          MongoDB數據庫的權限管理詳細介紹

          五、配置訪問控制

          MongoDB提供在數據庫級別上的驗證和授權,意味著用戶存在于單個數據庫的上下文中。為了實現基本的身份驗證,MongoDB把用戶憑據存儲在每個數據中名為system.users的集合中。

          當還沒在admin數據庫中定義用戶時,MongoDB允許在本地主機上的連接有對數據庫的完全管理訪問。因此,設置新的MongoDB實例的第一步是創建用戶管理員和數據庫管理員賬戶。用戶管理員具有在admin和其他數據庫中創建用戶賬戶的功能。還需要創建一個可以當作超級用戶使用的數據庫管理員賬戶,用來管理數據庫、集群、復制和MongoDB的其他方面。

          1.創建用戶管理員

          用戶管理員賬號應只有創建用戶的權限,而沒有管理數據庫或其他管理功能。使數據庫管理和用戶賬戶管理完全分離。用戶管理賬戶應該以userAdminAnyDatabase作為唯一的角色來創建。

          MongoDB數據庫的權限管理詳細介紹

          上面截圖可以看到使用用戶管理員賬戶來查詢collection是報錯,這是因為用戶管理員賬戶只是用來管理用戶的,不能管理數據庫。

          2.打開身份驗證

          用戶管理員賬戶已經創建需要使用–auth參數重啟MongoDB數據庫

          3.創建數據庫管理員

          MongoDB數據庫的權限管理詳細介紹

          上面截圖中創建了一個admin數據庫的數據庫管理員,使用數據庫管理員顯示collections是可以顯示的,而使用用戶管理員顯示時報錯。

          到此這篇關于MongoDB數據庫權限管理的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

          標簽MongoDB,技術文檔,數據庫,MongoDB

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 久久毛片免费看一区二区三区| 无码少妇A片一区二区三区| 性无码免费一区二区三区在线| 久久青草精品一区二区三区| 无码乱人伦一区二区亚洲一| 精品国产一区二区三区久久影院| 国产伦精品一区二区三区免费迷| 亚洲日韩国产精品第一页一区| 日本一区二区在线播放| 老鸭窝毛片一区二区三区| 亚洲色偷偷偷网站色偷一区| 国产裸体舞一区二区三区| 无码国产精品一区二区免费16| 久夜色精品国产一区二区三区| 精品国产一区在线观看| 福利国产微拍广场一区视频在线 | 国产成人精品一区二三区在线观看| 上原亚衣一区二区在线观看| 又硬又粗又大一区二区三区视频| 国产一区二区久久久| 无码人妻精品一区二区三区在线 | 日本免费一区二区三区 | 国产亚洲3p无码一区二区| 国产精品一区二区资源| 在线中文字幕一区| 乱码人妻一区二区三区| 少妇精品久久久一区二区三区| 国产高清在线精品一区小说 | 亚洲熟妇无码一区二区三区| 日本一区二区三区精品中文字幕| 国产精品 一区 在线| 日韩av片无码一区二区三区不卡| 美日韩一区二区三区| 亚洲日本va一区二区三区| 国产精品一区二区久久| 3d动漫精品啪啪一区二区免费| 无码人妻一区二区三区在线视频 | 国产一区二区在线看| 国模吧无码一区二区三区| 国产色精品vr一区区三区| 亚洲一区二区三区在线播放 |