MongoDB4.28开启权限认证配置用户密码登录功能

时间:2023-4-18 作者:admin

目录
  • 1、查看是否开启认证登录
  • 2、开启用户名和密码认证(创建用户均需进入admin数据库)
    • 2.1、为admin数据库创建管理员账号
    • 2.2、为数据库mytest创建普通用户
    • 2.3、配置文件开启用户名密码认证
  • 3、重启mongo服务
    • 4、mongo授权访问
      • 4.1、admin数据库授权登录
      • 4.1、mytest数据库授权登录

    MongoDB默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,需要更改配置文件mongdb.conf中的参数auth。

    MongoDB的用户是跟数据库相关联的,具体的数据库,需要有对应的用户,超级管理员也不能操作其他数据库的。

    MongoDB存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。

    MongoDB开启权限认证:配置用户名和密码认证登录,操作步骤:

    1、查看是否开启认证登录

    $cd /usr/local/mongodb/bin  $cat mongodb.conf

    #数据文件存放目录
    dbpath = /usr/local/mongodb/data
    #日志文件存放目录
    logpath = /usr/local/mongodb/logs/mongodb.log
    logappend=true
    #端口
    port = 27017
    #以守护程序的方式启用,即在后台运行
    fork = true
    #认证模式(true代表开启认证登录,false代表未开启认证登录)
    auth=false   
    #远程连接
    bind_ip=0.0.0.0

    2、开启用户名和密码认证(创建用户均需进入admin数据库)

    2.1、为admin数据库创建管理员账号

    1、数据库admin创建管理员账号

    [root@hadoop-master bin]# mongo  > use admin  > db.createUser({user:"root",pwd:"lianshi",roles:["root"]})

    2、查看目前用户

    > show users

    2.2、为数据库mytest创建普通用户

    1、给数据库mytest创建cg用户

    >use mytest  > db.createUser({user:"cg",pwd:"lianshi",roles:[{role:"readWrite",db:"mytest"}]})

    MongoDB4.28开启权限认证配置用户密码登录功能

    2、查看目前用户

    > show users  >db.system.users.find()命令可以查看新创建的用户

    2.3、配置文件开启用户名密码认证

    #认证模式(true代表开启认证登录,false代表未开启认证登录)  auth=true

    3、重启mongo服务

    [root@hadoop-master bin]# ps -ef |grep mongo  [root@hadoop-master bin]# kill -9 15231  $./mongod -f mongodb.conf

    4、mongo授权访问

    4.1、admin数据库授权登录

    1、mongo访问

    [root@hadoop-master bin]# mongo  > use admin  switched to db admin  > show users  2020-06-21T20:14:59.735+0800 E  QUERY    [js] uncaught exception: Error: command usersInfo requires authentication :  _getErrorWithCode@src/mongo/shell/utils.js:25:13  DB.prototype.getUsers@src/mongo/shell/db.js:1638:15  shellHelper.show@src/mongo/shell/utils.js:883:9  shellHelper@src/mongo/shell/utils.js:790:15  @(shellhelp2):1:1 -->授权配置并重启后,此时查看用户,会发现没有权限

    2、用用户和密码登录

    > db.auth("root","lianshi")

    --->使用db.auth(“root”,”lianshi”)启用auth认证,看到返回的值为1,这就表示启动成功了,然后我们再使用命令查看用户和数据库。

    MongoDB4.28开启权限认证配置用户密码登录功能

    4.1、mytest数据库授权登录

    1、mongo访问

    > use mytest;  switched to db mytest  > show users  2020-06-21T21:25:41.293+0800 E  QUERY    [js] uncaught exception: Error: command usersInfo requires authentication :  _getErrorWithCode@src/mongo/shell/utils.js:25:13  DB.prototype.getUsers@src/mongo/shell/db.js:1638:15  shellHelper.show@src/mongo/shell/utils.js:883:9  shellHelper@src/mongo/shell/utils.js:790:15  @(shellhelp2):1:1 --->报错没有权限

    2、用户和密码登录用户

    > db.auth("cg","lianshi");

    使用db.auth(“cg”,”lianshi”)启用auth认证,看到返回的值为1,这就表示启动成功了,然后我们再使用命令查看用户和数据库。

    > show dbs  mytest  0.000GB  >  db.student.insert({"id":"2","name":"yxy"})  WriteResult({ "nInserted" : 1 })

    MongoDB4.28开启权限认证配置用户密码登录功能

    其他用户命令:

    1、创建普通用户(创建用户cg,对mytest数据库读写权限)

    > db.createUser({user:"cg",pwd:"lianshi",roles:[{role:"readWrite",db:"mytest"}]})

    2、删除用户>db.dropUser("yonghu")

    3、修改用户密码

    db.updateUser("cg",{pwd:"123456"})

    4、进入数据mytest,用户名密码认证

    > db.auth("cg","lianshi");

    5、客户端工具授权登录连接mongo数据库

    用户名和密码连接数据库

    MongoDB4.28开启权限认证配置用户密码登录功能

    声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:ms173@126.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。