Open felix-cao opened 5 years ago
用户权限管理很重要,只给需要的权限,防止应用系统漏洞导致脱库
在 MongoDB安装--Centos系统下yum方式安装 #70 中, 我们提到 MongoDB 默认安装完成以后,只允许本地连接,不需要使用任何账号密码就可以直接连接MongoDB,这样的话,安全性就会存在问题,所以我们需要给Mongo开启认证授权,设置一个账号和密码;
mongodb存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。
进入 mongodb
$ mongo
启用 admin 数据库 创建一个管理员用户, role 为 userAdminAnyDatabase
> use admin switched to db admin > db.createUser({user: 'admin', pwd: 'weatcoin', roles: [{role: 'userAdminAnyDatabase', db:'admin'}]})
创建一个超级管理员用户
> db.createUser({user: 'root', pwd: 'weatcoin', roles: [{role: 'root', db:'admin'}]})
先进入admin数据库 然后运行db.createUser方法新建用户。createUser方法必须传入一个有user(用户名)、pwd(密码),roles(角色)三个属性的JSON对象。
在配置文件(默认是/etc/mongodb.conf)里面加入下面的代码:
security: authorization: enabled
重启
systemctl restart mongod
$ mongo admin -u root -p weatcoin
远程连接到 mongoDB 服务器时,mongodb在验证身份的时候需要指定你验证的这个用户所在的数据库,默认为admin
假设你 的 mongoDB服务器(47.75.134.199), 有一个 weatcoin 的数据库,为了能远程连接到这个库需要2步:
1)、给 weatcoin 库 指定一个账号
> use weatcoin switched to db admin > db.createUser({user: 'weatadmin', pwd: 'weatcoin', roles: [{role: 'readWrite', db:'admin'}]})
2)、连接
mongoose.connect('mongodb://weatadmin:weatcoin@47.75.134.199:27107/weatcoin',{ useNewUrlParser: true });
用户权限管理很重要,只给需要的权限,防止应用系统漏洞导致脱库
认证和授权
在 MongoDB安装--Centos系统下yum方式安装 #70 中, 我们提到 MongoDB 默认安装完成以后,只允许本地连接,不需要使用任何账号密码就可以直接连接MongoDB,这样的话,安全性就会存在问题,所以我们需要给Mongo开启认证授权,设置一个账号和密码;
设置账号和密码
mongodb存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。
进入 mongodb
启用 admin 数据库 创建一个管理员用户, role 为 userAdminAnyDatabase
创建一个超级管理员用户
先进入admin数据库 然后运行db.createUser方法新建用户。createUser方法必须传入一个有user(用户名)、pwd(密码),roles(角色)三个属性的JSON对象。
开启认证
在配置文件(默认是/etc/mongodb.conf)里面加入下面的代码:
重启
本地连接
远程连接
远程连接到 mongoDB 服务器时,mongodb在验证身份的时候需要指定你验证的这个用户所在的数据库,默认为admin
假设你 的 mongoDB服务器(47.75.134.199), 有一个 weatcoin 的数据库,为了能远程连接到这个库需要2步:
1)、给 weatcoin 库 指定一个账号
2)、连接
Reference