MongoDB用户权限管理

创建用户账号:

(roles参数指定了用户的角色以及这个账号授权的数据库,在同一个数据库中不能同时创建两个用户名相同的账号)

 

Mongodb内置的用户角色:

1. 数据库用户角色:readreadWrite

2. 数据库管理角色:dbAdmindbOwneruserAdmin

3. 集群管理角色:clusterAdminclusterManagerclusterMonitorhostManager

4. 备份恢复角色:backuprestore

5. 所有数据库角色:readAnyDatabasereadWriteAnyDatabaseuserAdminAnyDatabasedbAdminAnyDatabase

6. 超级用户角色:root

 间接或直接提供了系统超级用户访问的角色:dbOwneruserAdminuserAdminAnyDatabase

7. 内部角色:__system

 

角色具体介绍:

read:允许用户读取指定数据库。

readWrite:允许用户读写指定数据库。

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计等。

userAdmin:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户。

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用(授权数据库只能是admin,但是可以在其他数据库下创建,以下与此相同),赋予用户所有数据库的读权限。

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限。

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限。

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用,超级账号,超级权限,不仅可以授权,而且也可以对集合进行任意操作。

 

用户账号使用:

使用--auth命令行选项开启安全检查:

mongod --dbpath d:\mongodb\data\db --auth

再次使用mongo shell连接mongodb服务器的时候需要先进行权限验证

(用户账号是在哪个数据库中创建的,就要到哪个数据库下验证,然后再到账号授权的数据库下执行操作)

这个命令也可用于在不同用户账号之间切换。

若不进行权限验证则会报错:not authorized on ... to execute command ...

 

修改用户账号信息:

(到用户账号创建的数据库下修改,但是无法修改用户名)

 

删除用户账号:

db.dropUser(用户名)

(到用户账号创建的数据库下删除)

 

查询用户账号:

 

 

posted @   疯一样的狼人  阅读(919)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示