亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

MongoDB訪問控制介紹及操作詳解

2024-09-07 00:22:27
字體:
供稿:網(wǎng)友
  mongodb是一個基于分布式文件存儲的數(shù)據(jù)庫,如果使用過mongodb,應該了解新安裝的mongodb是沒有賬號設置的,也就意味著任何人都能夠連接mongodb,這是很不安全的,因此為能夠有效保證數(shù)據(jù)的安全,我們需要對mongodb進行設置賬號,來控制對數(shù)據(jù)庫的訪問。這篇文章我們就一起來了解一下MongoDB訪問控制的操作方法。
 
  什么是訪問控制?
 
  簡單講訪問控制就是指,哪些用戶可以訪問哪些資源,對資源有哪些操作(權限);在mongodb中我們把數(shù)據(jù)庫、或者集合叫做資源;也就說訪問控制是用來限制某些用戶對數(shù)據(jù)庫或集合的操作;我們在mysql數(shù)據(jù)庫中,我們通過給賬號授權的方式達到控制哪些用戶可以從哪些主機訪問數(shù)據(jù)庫,對數(shù)據(jù)庫有哪些操作;其中賬號由用戶名稱和主機地址構成;在mongodb中采用的不是用戶+主機地址的方式,而是通過給用戶賦予一個或多個角色,這個角色或多個角色的所有權限就是這個用戶擁有的權限;默認情況mongodb是沒有啟用訪問控制的,所以只要能夠連接上mongodb實例,我們就可以在其上做任何操作,在某種程度上,這是一種極為不安全的方式,為了杜絕這種不安全的訪問方式,我們需要對mongodb進行訪問控制;
 
  mongodb中的角色權限說明
 
  mongodb默認內(nèi)置了一些角色,不同的角色擁有不同的權限,
  查看mongodb中某個數(shù)據(jù)庫所有內(nèi)置角色
 
> db.runCommand({rolesInfo:1,showBuiltinRoles:true})
{
  "roles" : [
    {
      "role" : "dbAdmin",
      "db" : "test",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    },
    {
      "role" : "dbOwner",
      "db" : "test",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    },
    {
      "role" : "enableSharding",
      "db" : "test",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    },
    {
      "role" : "read",
      "db" : "test",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    },
    {
      "role" : "readWrite",
      "db" : "test",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    },
    {
      "role" : "userAdmin",
      "db" : "test",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    }
  ],
  "ok" : 1
}
>
  提示:以上是mongodb中test庫的默認角色;如果要查看其它庫,我們需要切換到其他庫,然后運行上述命令查看即可;
 
  查詢當前數(shù)據(jù)中的某個角色
 
> db
test
> db.runCommand({rolesInfo:"userAdmin"})
{
  "roles" : [
    {
      "role" : "userAdmin",
      "db" : "test",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    }
  ],
  "ok" : 1
}
>
  查詢其他數(shù)據(jù)庫中指定的角色權限
 
> db.runCommand({rolesInfo:{role:"userAdmin",db:"config"}})
{
  "roles" : [
    {
      "role" : "userAdmin",
      "db" : "config",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    }
  ],
  "ok" : 1
}
> db.runCommand({rolesInfo:{role:"root",db:"config"}})
{ "roles" : [ ], "ok" : 1 }
> db.runCommand({rolesInfo:{role:"root",db:"admin"}})
{
  "roles" : [
    {
      "role" : "root",
      "db" : "admin",
      "isBuiltin" : true,
      "roles" : [ ],
      "inheritedRoles" : [ ]
    }
  ],
  "ok" : 1
}
>
  創(chuàng)建一個用戶名為tom,其角色為超級管理員角色root
 
> use admin
switched to db admin
> db.createUser({user:"tom",pwd:"admin123.com",roles:[{"role":"root","db":"admin"}]})
Successfully added user: {
  "user" : "tom",
  "roles" : [
    {
      "role" : "root",
      "db" : "admin"
    }
  ]
}
>
  查看當前庫用戶列表
 
> db
admin
> db.getUsers()
[
  {
    "_id" : "admin.tom",
    "userId" : UUID("67bf434a-49fc-4ed5-9e9b-23c443a2fc93"),
    "user" : "tom",
    "db" : "admin",
    "roles" : [
      {
        "role" : "root",
        "db" : "admin"
      }
    ],
    "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
    ]
  }
]
>
  創(chuàng)建數(shù)據(jù)庫管理員用戶
 
> db.createUser({user:"jerry",pwd:"admin123.com",roles:["userAdminAnyDatabase"]})
Successfully added user: { "user" : "jerry", "roles" : [ "userAdminAnyDatabase" ] }
> db.getUsers()
[
  {
    "_id" : "admin.jerry",
    "userId" : UUID("5d0b77f2-b7f1-40cd-8149-f08b2e1e6a80"),
    "user" : "jerry",
    "db" : "admin",
    "roles" : [
      {
        "role" : "userAdminAnyDatabase",
        "db" : "admin"
      }
    ],
    "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
    ]
  },
  {
    "_id" : "admin.tom",
    "userId" : UUID("67bf434a-49fc-4ed5-9e9b-23c443a2fc93"),
    "user" : "tom",
    "db" : "admin",
    "roles" : [
      {
        "role" : "root",
        "db" : "admin"
      }
    ],
    "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
    ]
  }
]
>
  提示:如果創(chuàng)建用戶時,未指定db,則表示當前該用戶對當前所在db生效;
 
  刪除用戶
 
> db.dropUser("jerry")
true
> db.getUsers()
[
  {
    "_id" : "admin.tom",
    "userId" : UUID("67bf434a-49fc-4ed5-9e9b-23c443a2fc93"),
    "user" : "tom",
    "db" : "admin",
    "roles" : [
      {
        "role" : "root",
        "db" : "admin"
      }
    ],
    "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
    ]
  }
]
>
  提示:刪除用戶,需切換到對應數(shù)據(jù)下,指定對應用戶名稱即可;在mongodb中用戶是對應數(shù)據(jù)庫的,一個用戶可以對應一個或多個數(shù)據(jù)庫,在指定數(shù)據(jù)庫刪除用戶,就表示刪除指定用戶對指定數(shù)據(jù)庫的訪問權限;
 
  修改指定用戶的密碼
 
> db
admin
> db.changeUserPassword("tom","123456")
>
  提示:修改用戶密碼,第一個是指定用戶的名稱,第二個是指定新密碼;
 
  驗證用戶名和密碼
 
  給錯誤的密碼
 
> db
admin
> db.auth("tom","admin")
Error: Authentication failed.
0
>
 給正確的密碼
 
> db
admin
> db.auth("tom","123456")
1
>
  創(chuàng)建一個普通用戶
 
> use testdb
switched to db testdb
> db.createUser({user:"test",pwd:"admin",roles:[{role:"readWrite",db:"testdb"}]})
Successfully added user: {
  "user" : "test",
  "roles" : [
    {
      "role" : "readWrite",
      "db" : "testdb"
    }
  ]
}
> db.getUsers()
[
  {
    "_id" : "testdb.test",
    "userId" : UUID("95ecb34c-46f4-44fa-8948-4f0875499d8e"),
    "user" : "test",
    "db" : "testdb",
    "roles" : [
      {
        "role" : "readWrite",
        "db" : "testdb"
      }
    ],
    "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
    ]
  }
]
>
 提示:以上就創(chuàng)建了一個名為test的用戶,它可對testdb這個庫下的所有collection做讀寫操作;
 
  創(chuàng)建一個多角色的用戶
 
> db
testdb
> db.createUser(
... {
... user:"jerry1",
... pwd:"admin123.com",
... roles:[
... {role:"clusterAdmin",db:"admin"},
... {role:"readWrite",db:"testdb"},
... {role:"read",db:"testdb1"}
... ]
... })
Successfully added user: {
  "user" : "jerry1",
  "roles" : [
    {
      "role" : "clusterAdmin",
      "db" : "admin"
    },
    {
      "role" : "readWrite",
      "db" : "testdb"
    },
    {
      "role" : "read",
      "db" : "testdb1"
    }
  ]
}
> db.getUsers()
[
  {
    "_id" : "testdb.jerry1",
    "userId" : UUID("43d66bf8-1e3a-4c14-ad73-5961b5a7660f"),
    "user" : "jerry1",
    "db" : "testdb",
    "roles" : [
      {
        "role" : "clusterAdmin",
        "db" : "admin"
      },
      {
        "role" : "readWrite",
        "db" : "testdb"
      },
      {
        "role" : "read",
        "db" : "testdb1"
      }
    ],
    "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
    ]
  },
  {
    "_id" : "testdb.test",
    "userId" : UUID("95ecb34c-46f4-44fa-8948-4f0875499d8e"),
    "user" : "test",
    "db" : "testdb",
    "roles" : [
      {
        "role" : "readWrite",
        "db" : "testdb"
      }
    ],
    "mechanisms" : [
      "SCRAM-SHA-1",
      "SCRAM-SHA-256"
    ]
  }
]
>
  提示:在mongodb中一個用戶可以授權擁有多個角色權限;
 
  開啟mongodb服務端訪問控制配置
 
 
 
  重啟服務
 
[root@node12 ~]# systemctl restart mongod.service
[root@node12 ~]# ss -tnl
State  Recv-Q Send-Q   Local Address:Port      Peer Address:Port    
LISTEN  0  128      *:22          *:*     
LISTEN  0  100    127.0.0.1:25          *:*     
LISTEN  0  128      *:27017         *:*     
LISTEN  0  128      :::22         :::*     
LISTEN  0  100      ::1:25         :::*     
[root@node12 ~]#
  測試:現(xiàn)在連接mongodb,看看會發(fā)生什么?
 
[root@node12 ~]# mongo
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("68fa2f83-64a4-42c2-8d64-9ee73a77e883") }
MongoDB server version: 4.4.1
> show dbs
> db
test
> show tables
Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
>
  提示:現(xiàn)在我們直接連接mongodb是可以正常連接,但是我們沒法查看數(shù)據(jù)列表以及collections了;這個時候我們就需要進行用戶認證了;
 
  認證用戶
 
> db
test
> db.auth("test","admin")
Error: Authentication failed.
0
> use testdb
switched to db testdb
> db.auth("test","admin")
1
> show dbs
> show collections
>
  提示:認證用戶必須切換到對應的數(shù)據(jù)庫下做認證;我這里test用戶只能對testdb庫下的所有collection進行讀寫,所以認證以后,我們在使用 show dbs命令就看不到系統(tǒng)admin和config庫了;除了上述連接數(shù)據(jù)庫以后使用db.auth()做用戶認證,我們也可直接在連接數(shù)據(jù)庫時指定用戶名和密碼,如下
 
[root@node12 ~]# mongo -utest -padmin testdb
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/testdb?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("60c43e94-04c6-46f4-be07-07ca8fa06b2f") }
MongoDB server version: 4.4.1
> show dbs
> exit
bye
[root@node12 ~]# mongo -utest -padmin 192.168.0.52:27017/testdb
MongoDB shell version v4.4.1
connecting to: mongodb://192.168.0.52:27017/testdb?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a30dbd64-7b59-4a8e-b95d-02ff30e256f3") }
MongoDB server version: 4.4.1
> show dbs
> show tables
>
  以上就是在mongodb中開啟訪問控制,創(chuàng)建用戶,授權的操作;我們只需要在配置文件中指定開啟認證功能,然后使用具有創(chuàng)建用戶權限的用戶登錄數(shù)據(jù)庫創(chuàng)建用戶授權即可.

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产亚洲精品美女久久久| 精品久久久中文字幕| 国产精品入口麻豆原神| 亚洲free性xxxx护士白浆| 川上优av中文字幕一区二区| 人人妻人人澡人人爽人人精品| 国产精品视频一区二区三区综合| 亚洲三级色网| 高清美女视频一区| 91 视频免费观看| 精品中文字幕人| 2020最新国产精品| 天堂√在线中文官网在线| 欧洲av一区二区嗯嗯嗯啊| 91免费精品国偷自产在线在线| 中文一区一区三区免费| xxxx黄色片| 国产精品视频一区二区三区,| 97视频在线观看网址| 成人性生活视频免费看| 色se01短视频永久免费| 另类专区欧美| 老司机午夜福利视频| 国产一区二区伦理| 97视频在线| 国产精品99久久久久久久久| 免费黄色在线网址| 成人国产电影在线观看| 久久精品视频在线免费观看| 国产精品国产一区| 老太脱裤让老头玩ⅹxxxx| 日韩精品一页| 欧美视频免费播放| wwwcom羞羞网站| 日韩在线观看视频免费| 亚洲精品66| 日韩精品亚洲专区在线观看| 综合中文字幕| 亚洲成人7777| 拔插拔插华人永久免费| 九九热视频免费在线观看| 久久久99爱| 99久久99久久免费精品小说| 欧美视频一区二| 成人在线免费播放视频| 黄污视频在线观看| av在线影视| 日本视频免费| 97xxxxx| 欧洲av无码放荡人妇网站| 欧美午夜久久久| 欧美一区二区三区免费| 日韩欧美另类一区二区| 亚洲人123区| 7777久久亚洲中文字幕| av亚洲在线观看| 亚洲成熟丰满熟妇高潮xxxxx| 二人午夜免费观看在线视频| 欧美在线视频a| 日本一本高清视频| 欧美日韩999| 呻吟揉丰满对白91乃国产区| 欧美色男人天堂| 日韩电影一区二区三区| 国产精品成人在线观看| 亚洲午夜性刺激影院| 亚洲成人偷拍自拍| 国产精品无码2021在线观看| 国产经典欧美精品| 色悠悠久久久久| 91theporn国产在线观看| 美日韩精品免费视频| 777a∨成人精品桃花网| 蜜桃视频一区二区三区在线观看| 精品视频成人| 伊人伊成久久人综合网小说| 精品不卡在线视频| 精品一区二区三区免费播放| 免费a级黄色片| 中文在线www| 在线国产小视频| 蜜桃成人在线视频| 中文有码在线播放| 亚洲福利精品视频| 91精品小视频| www浪潮av99com| www.狠狠操.com| 国产精品丝袜久久久久久不卡| 韩国18福利视频免费观看| 999久久久久久久久6666| 视频一区中文字幕| 日韩毛片在线免费看| 18视频在线观看网站| 蜜桃久久av一区| 91精品视频在线播放| 99中文字幕一区| 亚洲午夜羞羞片| 茄子视频成人免费观看| 日韩a级大片| 二区三区在线播放| 欧美大黑bbbbbbbbb在线| 国产99精品国产| 免费久久99精品国产自| 中文字幕一区免费| 久久久国产一区二区三区| 最近2019中文字幕一页二页| 午夜av一区二区三区| 中国xxx69视频| 国产精品丝袜91| 综合区小说区图片区在线一区| 三级欧美日韩| 俄罗斯黄色一级片| 中文字幕91| 亚洲欧美激情视频在线观看一区二区三区| 亚洲制服丝袜一区| 国产一级片播放| 激情视频小说图片| 国内毛片毛片毛片毛片| av网站在线播放| 午夜精彩国产免费不卡不顿大片| 一区二区三区在线| 成人自拍视频在线观看| 亚洲专区一二三| 日本中文字幕影院| 亚洲少妇中文字幕| 国产精品白浆一区二小说| 欧美1区2区| 日本免费资源| 欧美大片大片在线播放| 国产精品视频一二三区| 国产精品视频中文字幕91| 精品国产乱码久久久久久果冻传媒| 四虎永久在线观看免费网站网址| 日韩理论视频| 青青青国产视频| 中文字幕视频在线免费| 亚洲国产成人在线观看| 婷婷激情在线| 大乳护士喂奶hd| 日韩电影在线观看一区二区| 成人免费视频观看视频| 国内精品伊人| 女人天堂网站| 国产mv免费观看入口亚洲| 粗暴蹂躏中文一区二区三区| 国产乱码久久久久久| 轻轻色免费在线视频| 成人看av片| 国产一区二区三区精品在线观看| 欧美激情中文字幕在线| 综合久久一区| 久久综合视频网| 激情综合色播五月| 日本黄色播放器| 日韩视频精品在线| 日韩av影音先锋| 日本男人天堂网| 精品国产3级a| 日韩毛片无码永久免费看| 欧美色图888| 视频一区二区三区在线| 欧美激情视频一区二区三区免费| 亚洲一区中文在线| 天天影视欧美综合在线观看| 97人妻精品视频一区| 3344国产精品免费看| 久久久久久久久久久久av| 欧美久久综合性欧美| 中文字幕色网站| 日本不卡视频在线观看| 熟妇人妻中文av无码| 精产国品一区二区| 亚洲乱码精品一二三四区日韩在线| 亚洲国产精品成人综合| 91福利免费观看| 日韩福利在线视频| 日韩小视频在线观看| 精品国产无码在线观看| 亚洲成在人线免费视频| 亚洲在线中文字幕| 无码人妻一区二区三区免费| 日韩有码中文字幕在线| 亚洲一区二区在线免费观看| 免费h网站在线观看| 欧美白人猛性xxxxx交69| 大乳在线免费观看| 韩国av一区二区三区在线观看| 国产99在线|亚洲| 欧美久久久久久久| 欧美另类变人与禽xxxxx| 欧美日韩国产免费一区二区| 国产福利第一视频| 国产精品av一区二区三区| 色婷婷综合久久久久中文字幕1| 欧美调教femdomvk| 国产九九九九| 99爱精品视频| 精品少妇一区二区三区视频免付费| 国产高清自拍视频在线观看| av噜噜在线观看| 秋霞影院午夜丰满少妇在线视频| 丰满人妻一区二区三区大胸| 国产原创精品| 欧美xxxx性xxxxx高清视频| 手机在线免费看毛片| 亚洲视频在线免费播放| 精品毛片一区二区三区| 亚洲av片在线观看| 在线不卡日本| 国产尤物视频| 国产高潮流白浆喷水视频| www.一区二区三区.com| 亚洲免费av在线| 136导航精品福利| 亚洲少妇一区二区| 日韩免费av电影| 国产免费无遮挡吸奶头视频| www免费视频观看在线| 波多野吉衣中文字幕| 黄色三级小视频| 久草热久草热线频97精品| 最新亚洲精品国自产在线观看| 两个人日本在线观看视频| 国产a级黄色片| 在线观看一级片| 国产免费www| 中文字幕在线观看一区| 日韩精品四区| 亚洲av少妇一区二区在线观看| 亚洲国产成人不卡| 国产精品h在线观看| 欧美大片国产精品| 午夜精品久久久久久久男人的天堂| 亚洲国产精品字幕| 久久综合给合久久狠狠狠97色69| 欧美精品成人91久久久久久久| 97精品高清一区二区三区| 亚洲自拍偷拍色图| 精品亚洲一区二区三区四区五区高| 中文字幕不卡av| 国产成人极品视频| 91精品在线一区| 亚洲国产成人精品电影| 私人玩物在线观看| 91成人免费在线视频| 天天综合久久| 在线免费观看av的网站| 少妇bbw搡bbbb搡bbbb| 国产精品动漫网站| 亚洲三级观看| 中文字幕视频精品一区二区三区| 中文字幕视频在线| 亚洲免费中文| 国产在线观看网站| 欧美精品第一页| 亚洲一区二区三区| 欧美日韩中文字幕在线播放| 国产视频一区二区三| 国产精品视频99| 东方aⅴ免费观看久久av| 成人性色生活片免费看爆迷你毛片| av电影高清在线观看| 日本免费一区二区三区等视频| 亚洲国产成人一区二区三区| 日本午夜精品久久久久| 波多野吉衣在线视频| 国产成人一区二区三区影院在线| 成人久久综合| 天堂91在线| 精品影视av免费| 欧美日韩中文国产| 一区二区三区在线视频观看58| 69国产精品视频| 精品久久久免费| 国产 中文 字幕 日韩 在线| 亚洲国产精品一区二区尤物区| 天天看天天摸天天操| 国产深夜男女无套内射| 天天插天天狠天天透| 精品国产一区三区| 蜜桃视频动漫在线播放| 日产精品久久久一区二区福利| 韩日a级毛片| 在线视频一二三区| 韩国在线一区| 亚洲精品乱码久久久久久日本蜜臀| 日本私人网站在线观看| 欧美a在线视频| 一本一道无码中文字幕精品热| 97精品人妻一区二区三区| 开心激情五月婷婷| 欧美精品亚洲| 91色乱码一区二区三区| 中文人妻一区二区三区| 国产精品久久久久久久天堂| 欧洲xxxxx| 欧美自拍一区| 不卡视频在线看| 在线日韩一区二区| 在线视频日韩精品| 亚洲丝袜另类动漫二区| 超碰在线caoporen| 精品国产一区久久久| 国产精品女主播在线观看| 在线看片免费人成视久网| 奇米影视888狠狠狠| 91影院在线免费观看| 亚洲加勒比久久88色综合| 欧美日本视频在线观看| 亚洲少妇屁股交4| 欧美精彩视频一区二区三区| av影片免费在线观看| 国产精品亚洲自拍| 亚洲电影在线观看| 欧美日韩视频一区二区| 久久草在线视频| 日韩精品一二三四区| 国产成+人+综合+亚洲欧美丁香花| 97人人香蕉| 99久久99热久久精品免费看| 亚洲欧美小说国产图片| 好爽好深好紧好大| 996久久国产精品线观看| 亚洲精品va| 亚洲一区在线观看免费| 国产日韩精品视频一区| 国产喷水福利在线视频| 国产精品蜜臀av|