本教程介绍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"
]
}
创建用户成功
使用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数据映射到了宿主机,那你就要进入容器中手动创建用户了。
MongoDB 3.0之后,explain的返回与使用方法与之前版本有了不少变化,介于3.0之后的优秀特色,本文仅针对MongoDB 3.0+的explain进行讨论。现版本explain有三种模式,分别如下:queryPlanner、executionStats、allPlansExecution
Redis、MongoDB及Memcached的基本概念、特点、应用场景、Redis是一个key-value存储系统(布式内缓存,高性能的key-value数据库);MongoDB是一个介于关系数据库和非关系数据库之间的产品;Memcached是一个高性能的分布式内存对象缓存系统
在做自己的一个小项目时,新学习了mongodb非关系型数据库,使用了mongoose封装好的查询方法,包括数据库分页用到的limit和skip方法,这里记录下。
插入数据例:向默认的test数据库的wj表中插入数据;查询数据查询test数据库的wj表中name值不为测试的数据;更新数据;
我需要把原来的 MongoDB 数据完整拷贝到新服务器上,查了一下实现方式蛮多的,但我觉得都不如写个 node 脚本来实现自由方便,这个方式也应该没有跨版本不兼容的坑
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!