本教程介绍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数据映射到了宿主机,那你就要进入容器中手动建立用户了。