濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > MongoDB 用戶相關(guān)操作

MongoDB 用戶相關(guān)操作

熱門(mén)標(biāo)簽:內(nèi)蒙古營(yíng)銷(xiāo)智能外呼系統(tǒng)哪個(gè)好 智能外呼系統(tǒng)官網(wǎng) 呼和浩特外呼系統(tǒng)原理是什么 青白江400企業(yè)電話申請(qǐng) 小裙科技電銷(xiāo)機(jī)器人怎樣 crm外呼系統(tǒng)聯(lián)系方式 河南電話外呼系統(tǒng)招商 外呼線路資源屬于電信業(yè)務(wù)嗎 長(zhǎng)沙電銷(xiāo)外呼防封卡是什么

   在我們第一次啟動(dòng)MongoDB的時(shí)候,僅僅是制定了data數(shù)據(jù)目錄和log日志目錄,并沒(méi)有指定--auth選項(xiàng),也就是并不需要認(rèn)證。

[root@VM-0-14-centos mongo_27017]# mongo
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("61c35b47-f43b-48fc-a43e-066f56987e9a") }
MongoDB server version: 4.0.6
> db
test

> show dbs;
admin  0.000GB
config 0.000GB
local  0.000GB

> use admin
switched to db admin

> show users;
> db.system.user.find()

      我們第一次登錄MongoDB的服務(wù),輸入db,發(fā)現(xiàn)當(dāng)前數(shù)據(jù)庫(kù)是test,但是show dbs卻看不到test數(shù)據(jù)庫(kù),其實(shí)這個(gè)是MongoDB的一個(gè)特點(diǎn),test是一個(gè)虛的數(shù)據(jù)庫(kù),想要看到test中的內(nèi)容,你只需要給test數(shù)據(jù)庫(kù)中插入一個(gè)文檔即可。

     接著,我們可以看到,當(dāng)我們輸入show users的時(shí)候,沒(méi)有看到任何賬號(hào)信息。接下來(lái)我們準(zhǔn)備開(kāi)啟--auth參數(shù)來(lái)重啟MongoDB服務(wù),在重啟之前,我們需要保證已經(jīng)分配了新的賬號(hào),下面我們開(kāi)始分配賬號(hào):

> db.createUser({ user: "root", pwd: "123456", roles: [ { role: "root", db: "admin"} ]}) 
Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

這里,我們可以看到,我們分配了一個(gè)賬號(hào):

user:root     # 用戶名

pwd:123456 # 密碼

roles:root    # 角色

db:admin     # 數(shù)據(jù)庫(kù)

角色root有必要做一下解釋:

Read:   允許用戶讀取指定數(shù)據(jù)庫(kù),
readWrite:允許用戶讀寫(xiě)指定數(shù)據(jù)庫(kù)
dbAdmin: 允許用戶在指定數(shù)據(jù)庫(kù)中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計(jì)或訪問(wèn)system.profile
userAdmin:允許用戶向system.users集合寫(xiě)入,可以在指定數(shù)據(jù)庫(kù)里創(chuàng)建、刪除和管理用戶
clusterAdmin:     只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限。
readAnyDatabase:    只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的讀權(quán)限
readWriteAnyDatabase: 只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的讀寫(xiě)權(quán)限
userAdminAnyDatabase: 只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的userAdmin權(quán)限
dbAdminAnyDatabase:  只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的dbAdmin權(quán)限。
root:         只在admin數(shù)據(jù)庫(kù)中可用。超級(jí)賬號(hào),超級(jí)權(quán)限

更詳細(xì)的內(nèi)容,請(qǐng)參看官方文檔:

https://docs.mongodb.com/manual/reference/built-in-roles/#dbAdmin

好了,創(chuàng)建好用戶之后,我們重啟MongoDB服務(wù),在配置文件中打開(kāi)--auth參數(shù),或者直接在命令行里面指定auth參數(shù),重新登陸:

[root@VM-0-14-centos mongo_27017]# mongo
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5f2b0fa6-a1e3-4aaf-b43f-3525e19c33d2") }
MongoDB server version: 4.0.6
> 
> use admin
switched to db admin
> show users
2020-10-28T23:42:06.127+0800 E QUERY  [js] Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1763:1
shellHelper.show@src/mongo/shell/utils.js:859:9
shellHelper@src/mongo/shell/utils.js:766:15
@(shellhelp2):1:1
> db.auth("root","123456")
1
> show users
{
    "_id" : "admin.root",
    "user" : "root",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}

可以看到,當(dāng)我們第一次使用show users的命令查看用戶的時(shí)候,系統(tǒng)拒絕了我們,顯示:

Error: command usersInfo requires authentication

然后我們進(jìn)行權(quán)限校驗(yàn):

use admin

db.auth("root","123456")

這下可以了。

不知道大家有沒(méi)有留意到一個(gè)細(xì)節(jié),我們登陸的時(shí)候,使用mongo命令登陸的,然后進(jìn)行用戶認(rèn)證,有沒(méi)有一種方法可以直接在登陸的時(shí)候就進(jìn)行用戶認(rèn)證呢?答案是有的。

登陸方法一:

mongo

use admin

db.auth("user":"password")

登陸方法二:

mongo -u "user" -p "password"

如下:

[root@VM-0-14-centos mongo_27017]# mongo -u "root" -p "123456"
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ef872d7a-77d9-43c2-bf3d-e04867379c0a") }
MongoDB server version: 4.0.6
> use admin 
switched to db admin
> show users
{
    "_id" : "admin.root",
    "user" : "root",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}
>

到這里,我們已經(jīng)學(xué)會(huì)了第一次登陸MongoDB之后,如何進(jìn)行初始用戶配置、如何開(kāi)啟MongoDB的認(rèn)證模式(--auth參數(shù))、以及在登錄的時(shí)候如何進(jìn)行用戶認(rèn)證,用戶這塊兒還有很多其他內(nèi)容,下一節(jié)我們展開(kāi)說(shuō)。

以上就是MongoDB 用戶相關(guān)操作的詳細(xì)內(nèi)容,更多關(guān)于MongoDB 用戶操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • MongoDB 簡(jiǎn)單入門(mén)教程(安裝、基本概念、創(chuàng)建用戶)
  • MongoDB數(shù)據(jù)庫(kù)用戶角色和權(quán)限管理詳解
  • MongoDB 用戶管理
  • MongoDB在系統(tǒng)數(shù)據(jù)庫(kù)local中無(wú)法創(chuàng)建用戶的解決辦法
  • mongodb基礎(chǔ)之用戶權(quán)限管理實(shí)例教程
  • Mac下安裝配置mongodb并創(chuàng)建用戶的方法
  • Mongodb 3.2.9開(kāi)啟用戶權(quán)限認(rèn)證問(wèn)題的步驟詳解
  • MongoDB快速入門(mén)筆記(七)MongoDB的用戶管理操作
  • MongoDB系列教程(四):設(shè)置用戶訪問(wèn)權(quán)限
  • Windows下MongoDB配置用戶權(quán)限實(shí)例
  • mongodb 添加用戶及權(quán)限設(shè)置詳解
  • MongoDB為用戶設(shè)置訪問(wèn)權(quán)限

標(biāo)簽:黃石 安順 呼倫貝爾 菏澤 楚雄 白山 池州 舟山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB 用戶相關(guān)操作》,本文關(guān)鍵詞  MongoDB,用戶,相關(guān),操作,MongoDB,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB 用戶相關(guān)操作》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于MongoDB 用戶相關(guān)操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    盈江县| 三明市| 静安区| 思南县| 文安县| 新兴县| 常山县| 隆尧县| 馆陶县| 项城市| 威宁| 休宁县| 定边县| 汽车| 新竹县| 平度市| 北海市| 偏关县| 洪泽县| 张家界市| 玛纳斯县| 丹阳市| 永州市| 鹤壁市| 梧州市| 湖南省| 南部县| 米泉市| 枝江市| 盖州市| 塘沽区| 河北区| 达州市| 柘荣县| 温宿县| 若羌县| 仙游县| 灵武市| 秦皇岛市| 崇州市| 凤翔县|