七叶笔记 » 数据库 » MongoDB安全及身份认证(实例讲解)

MongoDB安全及身份认证(实例讲解)

然后,重启mongod。查看日志文件,发现权限认证已经开启

但是,不使用用户名和密码依然可以连接到数据库。这是因为,我们还没有创建用户。在用户创建,并且开启权限认证之后,如果不使用用户名和密码将不能够连接到数据库

角色管理

在进行用户管理之前,首先要先了解角色管理

MongoDB支持基于角色的访问控制(RBAC)来管理对MongoDB系统的访问。一个用户可以被授权一个或者多个:ref:角色 <roles> 以决定该用户对数据库资源和操作的访问权限。在权限以外,用户是无法访问系统的

数据库角色在创建用户中的role参数中设置。角色分为内建角色和自定义角色

【内建角色】

MongoDB内建角色包括以下几类

1、数据库用户角色

2、数据库管理员角色

3、集群管理角色

4、备份恢复角色

5、所有数据库角色

6、超级用户角色

7、内部角色

【自定义角色】

除了使用内建的角色之外,MongoDB还支持使用db.createRole()方法来自定义角色

[注意]只能在admin数据库中创建角色,否则会失败

role: 自定义角色的名称

privileges: 权限操作 

roles:继承的角色。如果没有继承的角色,可以设置为空数组 

用户管理

【创建用户】

使用createUser命令来创建用户

user: 用户名 pwd: 密码

customData: 对用户名密码的说明(可选项)

roles: {role:继承自什么角色类型,db:数据库名称}

1、创建管理员用户

MongoDB没有默认管理员账号,所以要先添加管理员账号。切换到admin数据库,添加的账号才是管理员账号

在admin数据库中,添加一个用户并赋予userAdminAnyDatabase角色

2、重新登录数据库,并验证权限

如果auth()方法返回0则代表授权失败,返回1代表授权成功

3、添加普通用户

一旦经过认证的用户管理员,可以使用db.createUser()去创建额外的用户。 可以分配mongodb内置的角色或用户自定义的角色给用户

[注意]需要在admin数据库下进行认证,否则认证不成功

由于该用户只有读权限,所以会写入数据失败

4、创建超级用户

【查看用户】

【删除用户】

【添加用户权限】

给在db1数据库中只读的x用户,添加写权限

【修改密码】

以上这篇MongoDB安全及身份认证(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持七叶笔记。

相关文章