Mongoose链接权限用户Mongodb数据库
默认Mongodb数据库不需要密码就可以连接。我们想要新建用户权限来连接数据库,该怎么做?
还指定用户连接指定数据库名,如此管理权限也保障安全隐患。
进入 MongoDB 安装目录,打开目录bin运行终端,例如:
C:\Program Files\MongoDB\Server\4.4\bin
在该目录下运行终端,cmd或者cmder
进入 mongo 程序命令行
mongo
如下图:
打开user表
Mongodb初始安装都有默认admin数据库,里面有个users表,可以配置用户管理数据库
执行 use admin 命令链接admin数据库
use admin
查看用户列表
show users
如果没有配置用户账号,查询出来就是空的。
创建最高权限root用户
超级管理员root。角色:root。root角色用于关闭数据库。
注意:密码强度需要加大
。这里只是示例db.createUser({
user: "root",
pwd: "123456",
roles: [{
role: "root",
db: "admin"
}]
})
创建管理员账户
mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。admin用户用于管理账号,不能进行关闭数据库等操作。
db.createUser({
user: "admin",
pwd: "123456",
roles: [{
role: "userAdminAnyDatabase",
db: "admin"
}]
})
创建用户自己的数据库的管理角色
role: "dbOwner"代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等,当账号管理员和超级管理员,可以为自己的数据库创建用户了。
- 这时候一定,一定要切换到所在数据库上去创建用户,不然创建的用户还是属于admin。
- 如果是读写角色的话,权限设置为role: "readWrite"。
例如:新建了一个新数据库名为 xuanyu_test_db, 那么我们先use xuanyu_test_db, 再创建用户
use xuanyu_test_db
创建用户
db.createUser({
user: "user",
pwd: "123456",
roles: [{
role: "dbOwner",
db: "xuanyu_test_db"
}]
})
如何删除用户
删除用户必须由账号管理员来删,所以,切换到admin角色
use admin
验证用户
db.auth("admin","password")
删除单个用户
db.system.users.remove({user:"XXXXXX"})
删除所有用户
db.system.users.remove({})
修改配置项 authorization: enabled 开启登录鉴权
找到bin目录下面mongod.cfg文件,使用vscode(要以管理员权限)打开,开启authorization:enabled,如下图:
宝塔面板Mongodb如何配置用户权限
进入宝塔面板安装mongodb
安装完成之后,进入目录终端,下一步操作和上面一样
authorization: enabled 开启登录鉴权
如果需要外网链接数据库,设置ip 0.0.0.0
授权远程登录(这里以Navicat Premium 工具为例,其他大同小异);
ng
3 comments
看的我热血沸腾啊https://www.237fa.com/
想想你的文章写的特别好https://www.jiwenlaw.com/
博主真是太厉害了!!!