不管是mongoDB还是MySQL,我们往往都需要创建用户来保证安全性,在这里对这方面内容做一个简单的总结~
创建用户有帮助增加数据库安全的作用,在mongoDB中需要下列步骤
在shell中执行以下操作
sudo service mongod start # 启动mongod
mongo # 以非授权的方式启动
这时我们可以访问到任意一个不需要认证的数据库(比如我们用一个可视化客户端打开)
如果使用授权方式启动mongoDB,而我们不去登录的话我们也是无法使用的,所以我们要先创建一个管理员账号
首先非授权方式启动我们的mongoDB
> use admin # 创建admin数据库
> db.createUser({user:"admin",pwd:"admin",roles:["root"]}) # 创建一个用户名为admin,密码为admin,身份为管理员的User
> db.auth("admin","admin") # 进行认证
1 # 显示1,认证成功
这样,我们的数据库就有了自己的管理员
下面我们为创建一个有用户的db
> use demo1 # 切换数据库
switched to db demo1
# 创建一个用户名为demo1user,密码为demo1,身份为数据库用户,拥有demo1的User
> db.createUser({user:"demo1user",pwd:"demo1",roles:[{role:"dbOwner",db:"demo1"}]})
Successfully added user: {
"user" : "demo1user",
"roles" : [
{
"role" : "dbOwner",
"db" : "demo1"
}
]
}
经过我的尝试,我发现以认证方式启动mongd的方式有很多,我选择一种我比较喜欢的列在下面:
在安装mongoDB之后,如果是使用和我一样的方式安装的,那么将会自动生成一个配置文件,位于/etc/mongod.conf,我们也可以用这样的方式启动mongod
去
sudo mongod -f /etc/mongod.conf --auth # 认证模式启动
sudo mongod -f /etc/mongod.conf # 非认证模式启动
一切脱离版本的配置都是耍流氓
如果不想每次都带上–auth参数的haunted,我们可以在配置文件中修改,也就是对/etc/mongod.conf进行修改,我们以官网文档为准https://docs.mongodb.com/manual/reference/configuration-options/
关于用户认证方面的配置,点击上面的security仔细阅读一下
下面贴上我的配置文件片段(最后两行就是默认以用户认证方式启动)
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: enabled
如此一来,不管是sudo mongod -f /etc/mongod.conf
还是sudo service mongod start
都是以认证模式启动的了。