MONGODB4安装后配置
网上一堆旧的文章,服了。
参考 https://www.jianshu.com/p/238783312677
参考 https://blog.csdn.net/zouchangan/article/details/109324828
修改配置文档mongod.cfg(位置:安装目录\bin 下)
首先,将bind_ip改为0.0.0.0 ,binIP关乎到访问连接的限制。
#bindIp: 192.168.0.136 #如果修改成本机Ip,那除了本机外的机器都可以连接
#bindIp: 0.0.0.0 #改成0,那么大家都可以访问(共赢)
#bindIp: 127.0.0.1 #改成127,那就只能自己练了(独吞)
然后找到 #security:去掉#号,改成下面这样,开启安全认证。
security:
authorization: enabled #注意缩进,参照其他的值来改,若是缩进不对可能导致后面服务不能重启
冒号后有个空格.
1. 创建超级用户
安装完之后,打开命令行,进入mongodb安装目录,在bin目录下执行 mongod 启动, 该模式是不需要安全认证的模式,启动后,使用可视化工具如:Robo 3T 打开shell窗口先创建一个有grant权限的用户,如root权限的用户:
use admin
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [{ role: "root", db: "admin" }]
}
)
user:用户名
pwd:密码
db:指定该用户的数据库,admin是用于权限控制的数据库,如果没有需要新建一个
roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。
内置角色
- 数据库用户角色:read、readWrite
- 数据库管理角色:dbAdmin、dbOwner、userAdmin
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
- 备份恢复角色:backup、restore
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
- 内部角色:__system
角色功能
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
2. 创建所有数据库管理用户
use admin
db.createUser(
{
user: "manager",
pwd: "manager",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
}
)
3. 创建单个数据库用户
use salary
db.createUser(
{
user: "vanhr",
pwd: "vanhr",
roles: [{ role: "readWrite", db: "salary" }]
}
)
4. 测试
use salary
db.auth("vanhr", "vanhr")
db.createCollection("demo")
db.demo.insert( { name: "zhangsan", age: 18} )
db.demo.find()
查看全局所有账户
> db.system.users.find().pretty()
查看当前库下的账户
> use admin
switched to db admin
> show users
-----------
ROBO3T可以连接mongodb数据库 。。