本教程介紹mongodb中添加用戶的一些操做mongodb
在mongodb中經過用戶來管理每一個數據庫的權限,想要控制數據庫的使用權,就須要添加用戶,給指定的用戶分配權限,讓特定用戶來作特定的操做。docker
細分權限,限制數據庫的訪問和使用,提升mongodb的安全性。shell
防止被人非法使用,作一些非法操做,致使一些嚴重後果。
好比刪庫跑路─=≡Σ(((つ•̀ω•́)つ數據庫
首先,在mongod啓動時是不會啓動校驗的api
mongod
啓動mongod後,鏈接到mongod安全
root@e444205572bd:/# mongo MongoDB shell version v4.1.9 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("e3fd959c-db96-4853-a306-9edcc8c5baa7") } MongoDB server version: 4.1.9 ......
指定到admin數據庫下session
> use admin switched to db admin
經過指定的函數建立用戶函數
> db.createUser({user:"user", pwd:"123123", roles:["root"]}) Successfully added user: { "user" : "user", "roles" : [ "root" ] }
經過show查看該數據庫的用戶url
> show users { "_id" : "admin.user", "userId" : UUID("95e02aca-49c2-4852-b2bc-7dc4f2738175"), "user" : "user", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
建立用戶成功code
使用mongo鏈接
root@1410aa527d51:/# mongo -u user -p 123123 MongoDB shell version v4.1.9 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("8e9a9173-8263-40ea-b814-39090f0c90b7") } MongoDB server version: 4.1.9 ........
在mgo中進行鏈接
"mongodb://user:123123@localhost:27017"
info := &mgo.DialInfo{ Addrs:[]string{ "localhost:27017", }, Direct:false, Timeout:30 * time.Second, Database: "user", Source:"admin", Username:"user", Password:"123123", } session, err := mgo.DialWithInfo(info) //session, err := mgo.Dial(url) if err != nil { logs.Error(err) }
經過docker部署的mongo,在啓動時添加參數MONGO_INITDB_ROOT_USERNAME
和MONGO_INITDB_ROOT_PASSWORD
是能夠建立用戶的。可是若是以前的mongo並無建立用戶,而且你掛載了volume,把容器中的db數據映射到了宿主機,那你就要進入容器中手動建立用戶了。