• MongoDB:用户管理


    用户权限

    mongodb安装后,默认不需要用户登陆,可直接操作数据库,这是在真实生产中是非常危险的,可以通过使用为mongodb创建用户的方式来降低风险。

    下面是mongodb中的常用权限:

    权限名 描述
    read 允许用户读取指定数据库
    readWrite 允许用户读写指定数据库
    dbAdmin 允许用户在指定数据库中执行管理函数
    userAdmin 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
    cluterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
    readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAmin权限
    dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
    root 只在admin数据库中可用,超级账号,超级权限

    创建用户

    先进入mongodb命令行

    #必须先进入admin库
    use admin;
    #创建一个用户
    db.createUser({'user':'root','pwd':'root','roles':[{'role':'root','db':'admin'}],'customData':{'info':'first mongodb user'}});
    

    image-20210109214720058

    查看已经创建的用户:

    show users;
    

    image-20210109214827027

    # 或者使用这条命令也能查询所创建的用户
    db.system.users.find()
    

    重启MongoDB开启认证

    添加完用户后,如若想要使用用户操作,必须修改MongoDB配置再重启。

    #关闭MongoDB服务
    db.shutdownServer()
    

    修改配置文件

    vi /usr/local/mongo/conf/mongodb.conf
    

    添加auth=true,然后重启mongodb

    image-20210109215531744

    进入mongodb命令行,发现所示信息与之前没有开启auth的不一样了,信息少了很多。

    image-20210109215813337

    认证:

    use admin;
    db.auth('root','root');
    #返回1,登陆成功,返回0,登陆失败
    

    image-20210109215956151

    修改用户

    修改用户与创建用户语法类似

    db.updateUser('guest',{'pwd':'123','roles':[{'role':'readAnyDatabase','db':'admin'}]});
    

    修改用户密码:

    db.changeUserPassword("guest","guest");
    

    删除用户

    db.dropUser('guest');
    
  • 相关阅读:
    简单理解OOP——面向对象编程
    SpringMVC拦截器
    Vue简洁及基本用法
    springMVC实现文件上传下载
    Python笔记⑤爬虫
    Python笔记4
    Python笔记3
    Python基础语法笔记2
    Python基础入门语法1
    Navicat连接mysql时候出现1251错误代码
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/14256706.html
Copyright © 2020-2023  润新知