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...