欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mongodb基礎(chǔ)之用戶權(quán)限管理實例教程

 更新時間:2018年06月16日 11:05:58   作者:東勝  
這篇文章主要給大家介紹了關(guān)于mongodb基礎(chǔ)之用戶權(quán)限管理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要介紹了mongodb用戶權(quán)限管理的相關(guān)內(nèi)容,關(guān)于接著上次實踐的部分,下面話不多說了,來一起看看詳細(xì)的介紹吧

啟動mongodb并連接

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

查看默認(rèn)的數(shù)據(jù)庫情況

> show dbs
admin 0.000GB
local 0.000GB

> use admin
switched to db admin
> show tables
system.version

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

在創(chuàng)建設(shè)置用戶權(quán)限之前,先了解一下文檔知識

創(chuàng)建用戶

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

數(shù)據(jù)庫內(nèi)建角色

數(shù)據(jù)庫用戶角色

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

數(shù)據(jù)庫管理角色

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

集群管理角色

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

備份恢復(fù)角色

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

所有數(shù)據(jù)庫角色

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

超級用戶角色

  • root

內(nèi)部角色

  • __system

有了創(chuàng)建語法,和參數(shù)說明,接下來開始實踐.

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

創(chuàng)建 賬號管理授權(quán)權(quán)限 的賬號

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

然后退出數(shù)據(jù)庫

> use admin
switched 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 # 沒有驗證,沒有權(quán)限,會出錯
"errmsg" : "not authorized on admin to execute command
> use admin
> db.auth('admin', '123456')
1
# 返回 1 表示授權(quán)成功,0表示失敗
> show dbs #已經(jīng)授權(quán),可以查看了

創(chuàng)建 讀、讀寫權(quán)限的賬戶

> use book
switched 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"
    }
  ]
}

然后驗證用戶權(quán)限是否正確

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

創(chuàng)建 root 超級權(quán)限賬號

這個超級權(quán)限包括 授權(quán) 和 操控數(shù)據(jù)庫集合數(shù)據(jù),比較簡單,只需要把role設(shè)置成 root

> use admin
switched 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 book
switched to db book
> db.book.insert({book: '笑傲江湖'})
WriteResult({ "nInserted" : 1 })
> db.book.find()
{ "_id" : ObjectId("5959b59fdcc047dfe5c9b337"), "book" : "小人書" }
{ "_id" : ObjectId("5959b7abdcc047dfe5c9b339"), "book" : "笑傲江湖" }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Windows下把MongoDB安裝為系統(tǒng)服務(wù)的方法

    Windows下把MongoDB安裝為系統(tǒng)服務(wù)的方法

    這篇文章主要介紹了Windows下把MongoDB安裝為系統(tǒng)服務(wù)的方法,本文詳細(xì)介紹了將mongoDB安裝為WinXP下系統(tǒng)服務(wù)的過程,需要的朋友可以參考下
    2014-10-10
  • MongoDB Windows安裝服務(wù)方法與注意事項

    MongoDB Windows安裝服務(wù)方法與注意事項

    這篇文章主要介紹了MongoDB Windows安裝服務(wù)方法與注意事項的相關(guān)資料,MongoDB作為一個基于分布式文件存儲的數(shù)據(jù)庫,近兩年大受追捧。數(shù)據(jù)靈活的存取方式和高效的處理使得它廣泛用于互聯(lián)網(wǎng)應(yīng)用,需要的朋友可以參考下
    2016-12-12
  • MongoDB常用命令小結(jié)

    MongoDB常用命令小結(jié)

    這篇文章主要介紹了MongoDB的一些常用命令,學(xué)習(xí)與使用MongoDB數(shù)據(jù)庫的朋友可以參考下
    2013-08-08
  • MongoDB的創(chuàng)建、更新和刪除

    MongoDB的創(chuàng)建、更新和刪除

    下面開始學(xué)習(xí)MongoDB最重要也是最基礎(chǔ)的部分:C(創(chuàng)建)R(查詢)U(更新)D(刪除);由于R(查詢)操作相對來說內(nèi)容比較多,也比較繁瑣,同時使用頻率也比較高,所以下一篇會拿出來單獨介紹。廢話不多說,連上服務(wù)器,我們直接進(jìn)入正題
    2017-05-05
  • mongodb 常見問題處理方法收集

    mongodb 常見問題處理方法收集

    這篇文章主要介紹了mongodb 常見問題收集,這里的問題是我在看MongoDB官網(wǎng)文章時,從里面總結(jié)出來的,需要的朋友可以參考下
    2017-03-03
  • MongoDB創(chuàng)建與刪除數(shù)據(jù)庫

    MongoDB創(chuàng)建與刪除數(shù)據(jù)庫

    這篇文章介紹了MongoDB創(chuàng)建與刪除數(shù)據(jù)庫的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 28個MongoDB經(jīng)典面試題詳解

    28個MongoDB經(jīng)典面試題詳解

    這篇文章主要介紹了28個MongoDB經(jīng)典面試題詳解,需要的朋友可以參考下
    2020-02-02
  • mongodb使用docker搭建replicaSet集群與變更監(jiān)聽(最新推薦)

    mongodb使用docker搭建replicaSet集群與變更監(jiān)聽(最新推薦)

    replicaSet和cluster從部署難度相比,replicaSet要簡單許多。如果所存儲的數(shù)據(jù)量規(guī)模不算太大的情況下,那么使用replicaSet方式部署mongodb是一個不錯的選擇,這篇文章主要介紹了mongodb使用docker搭建replicaSet集群與變更監(jiān)聽,需要的朋友可以參考下
    2023-03-03
  • Mongodb億級數(shù)據(jù)性能測試和壓測

    Mongodb億級數(shù)據(jù)性能測試和壓測

    MongoDB是一個開源的、基于分布式文件存儲的NoSQL數(shù)據(jù)庫系統(tǒng),它使用文檔存儲方式,數(shù)據(jù)結(jié)構(gòu)由鍵值(key-value)對組成,本文給大家介紹了Mongodb億級數(shù)據(jù)性能測試和壓測,需要的朋友可以參考下
    2024-06-06
  • 數(shù)據(jù)庫MongoDB啟動的三種方式

    數(shù)據(jù)庫MongoDB啟動的三種方式

    MongoDB是一個流行的分布式文檔型數(shù)據(jù)庫,用于存儲非結(jié)構(gòu)化數(shù)據(jù),本文給大家總結(jié)了數(shù)據(jù)庫MongoDB啟動的三種方式,講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-07-07

最新評論