mongodb中的添加用户操作
source link: https://studygolang.com/articles/19537?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
mongodb添加用户
本教程介绍mongodb中添加用户的一些操作
mongodb中的用户是什么
在mongodb中通过用户来管理每个数据库的权限,想要控制数据库的使用权,就需要添加用户,给指定的用户分配权限,让特定用户来做特定的操作。
添加用户有什么用
细分权限,限制数据库的访问和使用,提高mongodb的安全性。
为什么要添加用户
防止被人非法使用,做一些非法操作,导致一些严重后果。
比如删库跑路─=≡Σ(((つ•̀ω•́)つ
怎么添加用户
首先,在mongod启动时是不会启动校验的
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数据库下
> use admin switched to db admin
通过指定的函数创建用户
> db.createUser({user:"user", pwd:"123123", roles:["root"]}) Successfully added user: { "user" : "user", "roles" : [ "root" ] }
通过show查看该数据库的用户
> 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" ] }
创建用户成功
添加用户之后如何连接mongodb
使用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数据映射到了宿主机,那你就要进入容器中手动创建用户了。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK