一、宝塔和本地的MongoDB设置权限一样的操作
宝塔:配置文件一般是conf、cfg为后缀名的
1、主要设置这两部分的内容authorization: enabled 开启权限认证 disabled 关闭
2、bindIp:让所有ip都通过,不局限于127.0.0.1
3、去终端进入mongodb根目录,对数据库进行操作
代码如下:
// 进入mongodb安装目录,下面是宝塔面板的默认目录
cd /www/server/mongodb/bin
mongo
4、进入admin数据库(mongodb默认管理数据库,可以在里面添加用户角色权限)
use admin
5、添加用户,给用户添加权限角色
// 创建管理员账号
db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
// 创建root账号
db.createUser({user: "root",pwd: "password", roles: [ { role: "root", db: "admin" } ]})
// 进入自己的数据库,创建自己数据库的管理角色
use yourdatabase
db.createUser({user: "user",pwd: "password",roles: [ { role: "dbOwner", db: "yourdatabase" } ]})
// 显示所有用户信息
show users
验证用户,设置了权限验证之后,如果要查看用户信息,如show users,会显示没有权限,需要进行验证之前你创建的管理角色
// 验证用户
db.auth('root','password')
上面的用户角色参数说明
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
下面的命令根据自己需要
// 删除用户
use admin
db.auth("admin","password")
// 删除单个用户
db.system.users.remove({user:"XXXXXX"})
// 删除所有用户
db.system.users.remove({})
6、修改自己的项目连接数据库代码
mongodb://youruser:yourpassword@公网ip/yourdatabase
ps:可以使用下面的可视化工具测试连接数据库