MongoDB 許可權管理

2021-08-20 04:58:17 字數 2585 閱讀 2308

mongodb預設是沒有許可權驗證的,但生產環境中,沒有許可權控制是很不安全的。

我們先不詳談太多概念,直接動手建立兩個典型的賬號:

在沒開啟許可權驗證機制的時候,我們在「命令指示符」視窗用mongo開啟mongodb的shell。

使用「use」命令,切換到admin資料庫,mongodb用admin的system.users集合儲存著使用者資訊。

> use admin

switched to db admin

>

使用db.createuser方法來建立使用者,具體的說明,請參考官網文件

> db.createuser(

... ]

... }

... )

successfully added user:

]}>

這樣我們就建立了乙個賬號:sa,密碼:123,擁有「__system」角色的許可權,關於「__system」角色的具體說明,請參考官網文件

警告:不要把擁有「__system」角色的賬號分配給系統程式使用

在mongodb學習——基礎入門這一篇中,我們將mongodb安裝到window服務的時候,建立了乙個「mongod.cfg"配置檔案,現在我們給配置檔案修改為如下:

systemlog:

destination: file

path: d:\program files\mongodb\server\3.0\log\mongod.log

storage:

dbpath: d:\program files\mongodb\server\3.0\db

# 開啟驗證

security:

authorization: enabled

重新啟動後,mongodb的操作就需要給客戶端授權後才能正常的工作了。

退出之前的mongodb的shell,可以直接關閉,然後重新開啟乙個「命令指示符」視窗或者使用「exit」命令。

使用之前建立的「sa」賬號登陸,登陸用到「db.auth"方法,如下所示:

> exit

byec:\users\**>mongo

mongodb shell version: 3.0.6

connecting to: test

> use admin

switched to db admin

> db.auth("sa","123")

1>

給「test」資料庫建立乙個賬號:testuser,密碼:123,擁有「readwrite」角色的許可權

> use test

switched to db test

> db.createuser(

... ]

... }

... )

successfully added user:

]}>

資料庫的唯讀許可權,包括:

資料庫的讀寫許可權,包括:

tocreate collections implicitly.),renamecollection (within the same database.)findandmodify,mapreduce (output

read的所有許可權

資料庫的使用者管理許可權
addshard,closealldatabases,connpoolstats,connpoolsync,_cpuprofilerstart_cpuprofilerstop,cursorinfo,diaglogging,dropdatabase 

shardingstate,shutdown,splitchunk,splitvector,split,top,touchresync

serverstatus,setparameter,setshardversion,shardcollection

replsetmaintenance,replsetreconfig,replsetstepdown,replsetsyncfrom

repairdatabase,replsetfreeze,replsetgetstatus,replsetinitiate

logrotate,movechunk,moveprimary,netstat,removeshard,unsetsharding

hostinfo,db.currentop(),db.killop(),listdatabases,listshardsgetcmdlineopts,getlog,getparameter,getshardmap,getshardversion

enablesharding,flushrouterconfig,fsync,db.fsyncunlock()

任何資料庫的唯讀許可權(和read相似)

任何資料庫的讀寫許可權(和readwrite相似)

任何資料庫使用者的管理許可權(和useradmin相似)

任何資料庫的管理許可權(dbadmin相似)

mongodb 許可權管理

啟動mongod時加上 auth引數,開啟許可權認證 db.adduser username password 第三個引數是建立唯讀使用者 only read,預設readwrite 用此方法,在普通資料庫下,建立的是當前資料庫的使用者 在amdin資料庫下,建立的是root使用者 db.auth ...

mongodb 許可權管理

mongodb已經使用很長一段時間了,基於mongodb的資料儲存也一直沒有使用到許可權訪問 mongodb預設設定為無許可權訪問限制 今天特地花了一點時間研究了一下,研究成果如下 注 研究成果基於windows平台 mongodb在本機安裝部署好後 2.輸入命令 use admin,你會發現該db...

mongodb 許可權管理

mongodb已經使用很長一段時間了,基於mongodb的資料儲存也一直沒有使用到許可權訪問 mongodb預設設定為無許可權訪問限制 今天特地花了一點時間研究了一下,研究成果如下 注 研究成果基於windows平台 mongodb在本機安裝部署好後 2.輸入命令 use admin,你會發現該db...