【mongodb】 启用身份认证
【摘要】 默认的mongodb服务没有设置身份认证,默认所有人都可以连接到数据库,因此需要开启身份认证实验环境:fedora 35 ARM,mongodb 5.0,mongosh 1.31.启动数据库服务方式一:前端启动数据库服务此命令会在前端启动mongodb服务,所以其他操作需要新建一个shell连接mongod --port 27017 --dbpath /var/lib/mongo/正常输出:...
默认的mongodb服务没有设置身份认证,默认所有人都可以连接到数据库,因此需要开启身份认证
实验环境:fedora 35 ARM,mongodb 5.0,mongosh 1.3
1.启动数据库服务
方式一:前端启动数据库服务
此命令会在前端启动mongodb服务,所以其他操作需要新建一个shell连接
mongod --port 27017 --dbpath /var/lib/mongo/
正常输出:
方式二:systemctl方式启动数据库服务
systemctl start mongod
2.连接到数据库
mongosh --port 27017
正常输出:
3.创建管理员用户
说明:
- pwd后跟的passwordPrompt() ,是交互式输入密码,在执行命令后会提示输入密码,这样是为了保护密码不被泄露。
- 用户名:myUserAdmin
- 角色 role:用户管理权限,读写所有数据库权限
注意:
- 这里创建的是用户管理员,如果需要其他权限则请参考官方文档:用户角色-MongoDB 手册
- 如果创建超级管理员请把roles部分替换为 roles:["root"]
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: passwordPrompt(), // or cleartext password
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)
正常输出:
3.关闭mongodb服务
在mongosh中执行此命令
db.adminCommand( { shutdown: 1 } )
quit()
正常输出:
执行上方命令后在我们启动mongodb服务的窗口可以看到数据库服务退出进程:
4.开启认证启动mongodb服务
方式一:命令启动
--auth 参数开启认证
mongod --auth --port 27017 --dbpath /var/lib/mongo/
方式二:systemctl启动
配置文件:/etc/mongod.conf
修改配置文件,添加红色框内容后执行
systemctl start mongod
5.使用密码连接数据库
执行后输入密码
mongosh --port 27017 --authenticationDatabase \
"admin" -u "myUserAdmin" -p
正常输出:
官方的认证配置手册:Authentication — MongoDB Manual
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)