a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > MongoDB > 正文

mongodb基礎之用戶權限管理實例教程

2020-10-29 18:43:51
字體:
來源:轉載
供稿:網友

前言

本文主要介紹了mongodb用戶權限管理的相關內容,關于接著上次實踐的部分,下面話不多說了,來一起看看詳細的介紹吧

啟動mongodb并連接

./bin/mongod -f conf/mongod.conf./bin/mongo 127.0.0.1:12345

查看默認的數據庫情況

> show dbsadmin 0.000GBlocal 0.000GB> use adminswitched to db admin> show tablessystem.version

可以看到,目前數據庫里除了一些基本信息,什么都沒有

在創建設置用戶權限之前,先了解一下文檔知識

創建用戶

# demodb.createUser( { user: "reportsUser", pwd: "12345678", roles: [  { role: "read", db: "reporting" },  { role: "read", db: "products" },  { role: "read", db: "sales" },  { role: "readWrite", db: "accounts" } ] })

數據庫內建角色

數據庫用戶角色

  • read (讀取指定數據庫)
  • readWrite (讀寫指定數據庫)

數據庫管理角色

  • dbAdmin (數據庫管理員)
  • dbOwner (數據庫所有者,合并了 readWrite, dbAdmin and userAdmin roles.)
  • userAdmin (用戶管理員,可以找指定數據庫里創建、刪除和管理用戶)

集群管理角色

  • clusterAdmin (集群管理員)
  • clusterManager (集群管理者)
  • clusterMonitor (集合監視者)
  • hostManager (主機管理者)

備份恢復角色

  • backup (備份)
  • restore (還原)

所有數據庫角色

  • readAnyDatabase (讀任何數據庫)
  • readWriteAnyDatabase (讀寫任何數據庫)
  • userAdminAnyDatabase (用戶管理任何數據庫)
  • dbAdminAnyDatabase (任意數據庫管理員)

超級用戶角色

  • root

內部角色

  • __system

有了創建語法,和參數說明,接下來開始實踐.

注意,還有一點,賬號是跟著數據庫綁定的,在那個庫里授權,就在那個庫里驗證(auth)
否則會失敗

創建 賬號管理授權權限 的賬號

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

然后退出數據庫

> use adminswitched to db admin> db.shutdownServer()

重新啟動mongodb,記得在配置文件mongod.conf里加上 auth = true

./bin/mongod -f conf/mongod.conf./bin/mongo 127.0.0.1:12345> show dbs # 沒有驗證,沒有權限,會出錯"errmsg" : "not authorized on admin to execute command> use admin> db.auth('admin', '123456')1# 返回 1 表示授權成功,0表示失敗> show dbs #已經授權,可以查看了

創建 讀、讀寫權限的賬戶

> use bookswitched to db book> db.createUser(... {... user: 'zhangsan',... pwd: 'zhangsan',... roles: [{role: 'read', db: 'book'}]... }... )Successfully added user: {  "user" : "zhangsan",  "roles" : [    {      "role" : "read",      "db" : "book"    }  ]}> db.createUser(... {... user: 'lisi',... pwd: 'lisi',... roles: [{role: 'readWrite', db: 'book'}]... }... )Successfully added user: {  "user" : "lisi",  "roles" : [    {      "role" : "readWrite",      "db" : "book"    }  ]}> show users{  "_id" : "book.lisi",  "user" : "lisi",  "db" : "book",  "roles" : [    {      "role" : "readWrite",      "db" : "book"    }  ]}{  "_id" : "book.zhangsan",  "user" : "zhangsan",  "db" : "book",  "roles" : [    {      "role" : "read",      "db" : "book"    }  ]}

然后驗證用戶權限是否正確

> db.book.insert({book: '小人書'}) # 沒驗證,會出錯WriteResult({  "writeError" : {    "code" : 13,    "errmsg" : "not authorized on book to execute command { insert: /"book/", documents: [ { _id: ObjectId('5959b56edcc047dfe5c9b336'), book: /"小人書/" } ], ordered: true }"  }})> db.auth('lisi', 'lisi')1> db.book.insert({book: '小人書'})WriteResult({ "nInserted" : 1 })> db.auth('zhangsan', 'zhangsan') # 用戶切到 zhangsan1> db.book.find() # 可以查看{ "_id" : ObjectId("5959b59fdcc047dfe5c9b337"), "book" : "小人書" }> db.book.insert({book: '擇天記'}) # 沒有write權限,會失敗WriteResult({  "writeError" : {    "code" : 13,    "errmsg" : "not authorized on book to execute command { insert: /"book/", documents: [ { _id: ObjectId('5959b650dcc047dfe5c9b338'), book: /"擇天記/" } ], ordered: true }"  }})

創建 root 超級權限賬號

這個超級權限包括 授權 和 操控數據庫集合數據,比較簡單,只需要把role設置成 root

> use adminswitched to db admin> db.auth('admin', '123456')1> db.createUser(... {... user: 'dongsheng',... pwd: '123456',... roles: [{role: 'root', db: 'admin'}]... }... )Successfully added user: {  "user" : "dongsheng",  "roles" : [    {      "role" : "root",      "db" : "admin"    }  ]}> db.auth('dongsheng', '123456')1> use bookswitched to db book> db.book.insert({book: '笑傲江湖'})WriteResult({ "nInserted" : 1 })> db.book.find(){ "_id" : ObjectId("5959b59fdcc047dfe5c9b337"), "book" : "小人書" }{ "_id" : ObjectId("5959b7abdcc047dfe5c9b339"), "book" : "笑傲江湖" }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲一二三区不卡 | 天天做天天爱天天综合网2021 | 国产精品久久久久久久午夜片 | 免费一区二区三区 | 国产日韩欧美一区 | 亚洲精品久久久蜜桃 | 日韩一区二区在线免费观看 | 亚洲网在线| 亚洲一区二区三区在线免费观看 | 九九热精品视频在线 | 天天插天天射天天干 | 日韩电影免费在线观看中文字幕 | 国产精品第一区第27页 | 91精品国产欧美一区二区成人 | 国产三级在线 | 91精品久久久久久久久入口 | 夜夜艹日日艹 | 欧美精品黄 | 日本在线色 | 国产第一毛片 | 久久一区二区三区四区五区 | 国产一区在线免费 | 久久a久久 | 国产精品一区二区三区在线 | 亚洲日批视频 | 老司机福利在线视频 | 国产精品久久久久桃色tv | 精品国产区 | 亚洲国产日韩欧美 | 欧美视频二区 | 成人免费视频网站在线观看 | 亚洲精品一区二区三区中文字幕 | 日韩精品区 | 综合一区二区三区 | 成人激情视频在线播放 | 一区二区三区在线播放 | 综合久久亚洲 | 欧美成人精品一区二区男人看 | 亚洲呦呦 | 成人一边做一边爽爽视频 | 一区二区日韩 |