最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB數(shù)據(jù)庫權(quán)限管理詳解

 更新時間:2022年07月07日 09:51:52   作者:社會主義接班人  
本文詳細(xì)講解了MongoDB數(shù)據(jù)庫權(quán)限管理的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前幾天網(wǎng)友問MongoDB數(shù)據(jù)庫權(quán)限方面的問題。當(dāng)時大致的了解了一下,這周仔細(xì)了解了一下。對于一個數(shù)據(jù)庫不可能隨意的訪問,肯定要有寫訪問限制。

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

一、shell命令

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

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

二、shell方法

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

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

三、使用shell編寫腳本

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

1.使用--eval

該--eval參數(shù)接受一個Javascript字符串或Javascript文件并啟動MongoDB的shell,并立即執(zhí)行Javascript。

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

四、管理用戶賬號

1.創(chuàng)建用戶賬號

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

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

2.角色

用戶和角色是多對多的關(guān)系,一個用戶可以對應(yīng)多個角色,一個角色可以擁有多個用戶。用戶角色的不同對應(yīng)的權(quán)限也是不一樣的。下面是一些分配給用戶的常見的角色。

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

3.刪除用戶賬號

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

五、配置訪問控制

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

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

1.創(chuàng)建用戶管理員

用戶管理員賬號應(yīng)只有創(chuàng)建用戶的權(quán)限,而沒有管理數(shù)據(jù)庫或其他管理功能。使數(shù)據(jù)庫管理和用戶賬戶管理完全分離。用戶管理賬戶應(yīng)該以userAdminAnyDatabase作為唯一的角色來創(chuàng)建。

上面截圖可以看到使用用戶管理員賬戶來查詢collection是報錯,這是因?yàn)橛脩艄芾韱T賬戶只是用來管理用戶的,不能管理數(shù)據(jù)庫。

2.打開身份驗(yàn)證

用戶管理員賬戶已經(jīng)創(chuàng)建需要使用--auth參數(shù)重啟MongoDB數(shù)據(jù)庫

3.創(chuàng)建數(shù)據(jù)庫管理員

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

到此這篇關(guān)于MongoDB數(shù)據(jù)庫權(quán)限管理的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MongoDB使用profile分析慢查詢的步驟

    MongoDB使用profile分析慢查詢的步驟

    這篇文章主要介紹了MongoDB profile分析慢查詢的示例,幫助大家更好的理解和學(xué)習(xí)使用MongoDB數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-04-04
  • 深入分析Mongodb數(shù)據(jù)的導(dǎo)入導(dǎo)出

    深入分析Mongodb數(shù)據(jù)的導(dǎo)入導(dǎo)出

    這幾天想著公司要用MongoDB,自然就要用到數(shù)據(jù)導(dǎo)入導(dǎo)出,就自己學(xué)習(xí)了一下。本文介紹了mongoDb導(dǎo)入導(dǎo)出數(shù)據(jù)的方法,有需要的朋友參考下。
    2015-05-05
  • centos yum 安裝 mongodb 以及php擴(kuò)展

    centos yum 安裝 mongodb 以及php擴(kuò)展

    MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
    2014-07-07
  • Mongodb 數(shù)據(jù)類型及Mongoose常用CURD

    Mongodb 數(shù)據(jù)類型及Mongoose常用CURD

    MongoDB 是一個開源的 NoSQL 數(shù)據(jù)庫,相比 MySQL 那樣的關(guān)系型數(shù)據(jù)庫,它更為輕巧、靈活,非常適合在數(shù)據(jù)規(guī)模很大、事務(wù)性不強(qiáng)的場合下使用,本文給大家介紹Mongodb 數(shù)據(jù)類型及Mongoose常用CURD,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • MongoDB和mysql的區(qū)別對比分析

    MongoDB和mysql的區(qū)別對比分析

    MongoDB?是一個基于分布式文件存儲的數(shù)據(jù)庫,而MySQL?是一款安全、跨平臺、高效的,并與?PHP、Java?等主流編程語言緊密結(jié)合的數(shù)據(jù)庫系統(tǒng),本文重點(diǎn)給大家介紹MongoDB和mysql的區(qū)別,需要的朋友可以參考下
    2023-01-01
  • MongoDB各種查詢操作詳解

    MongoDB各種查詢操作詳解

    這篇文章主要介紹了MongoDB各種查詢操作詳解,包括比較查詢、關(guān)聯(lián)查詢、數(shù)組查詢等,需要的朋友可以參考下
    2014-03-03
  • MongoDB分組查詢和聚合查詢實(shí)例教程

    MongoDB分組查詢和聚合查詢實(shí)例教程

    聚合(aggregate)是MongoDB的高級查詢語言,它允許我們通過轉(zhuǎn)化合并多個文檔的數(shù)據(jù)來生成新的在單個文檔里不存在的文檔信息,下面這篇文章主要給大家介紹了關(guān)于MongoDB分組查詢和聚合查詢的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • MongoDB創(chuàng)建和查詢視圖的方式

    MongoDB創(chuàng)建和查詢視圖的方式

    本文整理mongodb的官方文檔,介紹mongodb的視圖創(chuàng)建和查詢,在Mongodb中,允許使用兩種方式來創(chuàng)建視圖,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2023-12-12
  • mongodb操作的模塊手動封裝

    mongodb操作的模塊手動封裝

    這篇文章主要介紹了mongodb操作的模塊手動封裝的相關(guān)資料,這里提供實(shí)例幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-08-08
  • mongose 模糊檢索實(shí)現(xiàn)方法示例詳解

    mongose 模糊檢索實(shí)現(xiàn)方法示例詳解

    這篇文章主要為大家介紹了mongose 模糊檢索實(shí)現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評論

泰来县| 衢州市| 思南县| 衡水市| 观塘区| 依兰县| 阿鲁科尔沁旗| 奈曼旗| 原阳县| 漯河市| 周口市| 阜南县| 安康市| 阿鲁科尔沁旗| 阳新县| 广元市| 共和县| 博白县| 长兴县| 溧水县| 新宾| 平昌县| 宜章县| 西昌市| 巴彦淖尔市| 赤峰市| 比如县| 姜堰市| 黎城县| 宣汉县| 宜兴市| 曲靖市| 会同县| 印江| 庐江县| 瓮安县| 马鞍山市| 澳门| 新建县| 太原市| 阜宁县|