MongoDB数据库如何 开启认证登录

        MongoDB 默认安装完成以后,默认安装的MongoDB是无账号密码即可访问的;为了连接的安全性必须开启认证登录以保证数据的安全性

目录

一:创建超级用户

二:创建数据库管理用户

三:重启数据库

四:登录并启用认证

附:MongoDB权限类型


一:创建超级用户

use admin;
db.createUser({user: 'admin', pwd: 'admin', roles: [{role: 'root', db: 'admin'}]});

# 在"admin"数据库中,创建"admin"用户,密码设置为"admin",授予该用户"超级用户角色"

         注:”超级用户角色“拥有数据库最高管理权限,可以管理所有数据库

二:创建数据库管理用户

        在MongoDB中,不同的数据库可以创建相同的用户名;例如在数据库”test1“和数据库”test2”中,都存在一个“test”用户,这两个用户分别管理各自的库,两个数据库分别为这两个用户的“认证数据库”(在SQL客户端或工具进行连接时,需要提供登录用户的“认证数据库”作为区分)

> use test1
switched to db test1
> db.createUser({user: "test", pwd: "test", roles: [{ role: "dbOwner", db: "test1" }]})   

# 在数据库"test1"中,创建用户test,设置密码test,设置角色dbOwner(可以在当前DB中执行任意操作)

> use test2
switched to db test2
> db.createUser({user: "test", pwd: "test", roles: [{ role: "dbOwner", db: "test2" }]})   

# 在数据库"test2"中,创建用户test2,设置密码test2,设置角色dbOwner(可以在当前DB中执行任意操作)

三:重启数据库

[root@test~]# systemctl restart mongodb

四:登录并启用认证

[root@test~]# mongo
> use admin
switched to db admin
> db.auth("admin", "admin")

# 首先使用use命令登录指定数据库,然后使用db.auth()命令进行用户认证,否则没有权限操作数据库

附:MongoDB权限类型

角色描述 角色标识

数据库用户角色

(Database User Roles)

read:授予User只读数据的权限
readWrite:授予User读写数据的权限

数据库管理角色

(Database Administration Roles)

dbAdmin:在当前dB中执行管理操作
dbOwner:在当前DB中执行任意操作
userAdmin:在当前DB中管理User

备份和还原角色

(Backup and Restoration Roles)

backup
restore

跨库角色

(All-Database Roles)

readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理User的权限
dbAdminAnyDatabase:授予管理所有数据库的权限

集群管理角色

(Cluster Administration Roles)

clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限
clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
hostManager:管理Server

超级用户角色

(Super User)

root:授予数据库最高管理权限

猜你喜欢

转载自blog.csdn.net/pigoss02/article/details/126086826