【mongodb】 启用身份认证

举报
HW小龙 发表于 2022/04/06 17:46:07 2022/04/06
【摘要】 默认的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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。