【mongo系列】 五、mongo认证和授权

本文介绍了MongoDB的认证配置,包括开启认证、创建管理员用户、普通用户授权等。详细阐述了不同角色的权限,如数据库用户角色、数据库管理角色等,并展示了如何为用户分配多个库的权限。
摘要由CSDN通过智能技术生成

mongo通过给每个用户分配角色,来控制用户的权限

因此在给用户授权前,先介绍下常用的角色

一、mongo角色

1.数据库用户角色

// 每个库都有这些角色,针对单个库设置
read           // 读
readWrite      // 读写

2. 数据库管理角色

// 每个库都有这些角色,针对单个库设置
dbAdmin        // 数据库管理角色,可以查看统计信息等,不能修改数据库数据
dbOwner        // 针对该数据库的最大权限,包含dbAdmin,userAdmin,readWrite等
userAdmin      // 数据库用户管理,创建用户,设置权限

3. 备份和恢复角色

backup         // 备份
restore        // 恢复

4. 针对所有数据库的角色

以下角色是针对除了localconfig外的其他所有库

readAnyDatabase         // 读所有库 
readWriteAnyDatabase    // 读写所有库
userAdminAnyDatabase    // 所有库的userAdmin权限
dbAdminAnyDatabase      // 所有库的dbAdmin权限

二、认证配置

1. 开启认证

开启认证:

​ 在配置文件中增加auth=true 或启动时加--auth参数

开启认证后从本地进入命令行show dbs看不到任何库

// show dbs无任何输出
[mongo@host130 ~]$ mongo
> show dbs
>                        

2. 配置第一个管理员用户

开启认证后,需要首先从本地连接创建一个管理员用户,用这个用户去管理其他用户

  • 1.本地登录mongo shell

  • 2.切换到admin

  • 3.创建一个用户admin密码admin

    roles中赋予了它两个角色,在admin库赋予readWrite角色

    又赋予了userAdminAnyDatabase角色,即所有库的用户管理权限

[mongo@host130 ~]$ mongo
> use admin
> db.createUser(
     {
   
         user : "admin",
         pwd : "admin",
         roles: [ 
             {
   
                 role : "readWrite", 
                 db : "admin"
             },
            {
   
                 role:  "userAdminAnyDatabase",
                db : "admin"
             }
         ]
 )
  • 4.用我们刚才创建的用户登录

    以上步骤只是登录并建立了一个管理员用户,要让这个用户生效,我们需要用这个用户登录

    方式一: 退出当前shell,重新带账号密码登录

    mongo -uadmin -padmin
    

    **方式二:**在刚才shell中认证

    // 因为我们这个用户是在admin库建立的,所以需要切换到admin库才能认证
    use admin
    // 登录
    db.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值