mongodb 3.x用户认证

这篇博客详细介绍了MongoDB 3.x的用户认证机制,包括SCRAM、MONGODB-CR、x.509等多种认证方式。内容涵盖了客户端认证、内部集群数据库成员间的认证过程,以及创建用户、内置角色、权限分配、开启认证的步骤。通过示例演示了在mongo shell中进行用户认证和权限操作,强调了用户认证与数据库的关联性,以及在不同数据库间认证的注意事项。
摘要由CSDN通过智能技术生成

mongodb 认证(authentication)

认证与授权是紧密关联的,但是认证不同于授权。认证是确认一个用户的身份,允许用户登录数据库,而授权是赋予认证的用户各种权限,是用户有访问的不同资源和进行各种操作的权限。

1. mongodb认证机制

2. mongodb认证

客户端认证(用户认证)

客户端认证是对连接到mongd或mongos的客户端进行认证确认

  • 1 通过mongo shell认证

    • 在命令行连接mongod或mongos实例时,使用如下参数:–username,–password,–authenticationDatabase

    • 直接在命令行连接mongd或mongos,然后在mongo shell中切换到认证数据库后运行authenticate命令或db.auth()方法

  • 2 在编程语言的驱动中认证

    参考驱动文档

Internal Authentication(集群数据库成员间认证)

在集群部署中,除了对客户端进行认证,集群中各成员的数据库实例间也需要进行认证(Internal Authentication)。如果开启了Internal Authentication,客户端认证也会被开启,连接数据库是必须进行客户端认证。

Internal Authentication 方法:
* keyfile
* x.509

3. 创建用户

use admin
switched to db admin
db.createUser(
...   {
...     user: 'admin',
...     pwd: 'admin',
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
...   }
... )
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

4. 内置角色:

1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root (如果用户同时有dbOwner 、userAdmin、userAdminAnyDatabase三个角色,就间接或直接提供了系统超级用户的访问)

5. 每个角色具体权限:

1. read:允许用户读取指定数据库
2. readWrite:允许用户读写指定数据库
3. dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
4. userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
5. clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值