当前位置: 代码网 > it编程>数据库>mongodb > MongoDB权限设置与登录授权方式及解读

MongoDB权限设置与登录授权方式及解读

2026年04月16日 mongodb 我要评论
一、角色权限1.管理所有数据库角色角色权限说明适用场景root超级管理员,拥有所有数据库和集群的完整权限(读写、管理、用户控制等)。紧急维护或全局管理(生产环境慎用)。dbadminanydataba

一、角色权限

1.管理所有数据库角色

角色权限说明适用场景
root超级管理员,拥有所有数据库和集群的完整权限(读写、管理、用户控制等)。紧急维护或全局管理(生产环境慎用)。
dbadminanydatabase管理所有数据库的元数据(如创建/删除集合、索引),但不能读写数据。跨库维护表结构(如批量创建索引)。
useradminanydatabase管理所有数据库的用户和角色(如创建用户、分配权限),但不能直接操作数据。集中式用户权限管理(需严格审计)。
readwriteanydatabase读写所有数据库的数据(增删改查),但不能管理数据库结构或用户。跨库数据同步或全局数据操作。
readanydatabase读取所有数据库的数据(仅查询),无写入权限。跨库数据分析或监控工具。

2.管理指定数据库角色

角色权限说明适用场景
dbowner当前数据库的完全控制权限(包括 readwrite + dbadmin + useradmin)。单库管理员(小型项目或独立业务库)。
dbadmin管理当前数据库的元数据(如索引、集合结构),不能读写数据。维护特定库的表结构或统计信息。
useradmin管理当前数据库的用户和角色(如创建用户),不能操作数据或表结构。单库用户权限管理(多租户系统)。
readwrite读写当前数据库的数据(增删改查),不能管理数据库结构或用户。应用程序的常规读写操作。
read只读当前数据库的数据(查询),无写入权限。只读报表或数据分析。

二、创建超级管理员

1.开启auth认证

security:
    authorization: enabled

开启auth认证后重新服务也是可以访问,不过看不到数据表

2.关闭auth认证创建root用户

关闭auth认证进度终端, 在 admin 数据库创建用户

use admin
db.createuser({
    user: "root",
    pwd: "123456",
    roles: [{ role: "root", db: "admin" }]
});

3.再次开启auth认证

下面的是使用root超级管理员登录,可以查看所有数据库,上面未用账户登录无法查看

三、创建拥有所有数据库查看权用户

db.createuser({
  user: "test1",
  pwd: "123456",
  roles: ["readanydatabase"]
})

尝试新增数据会报错,是因为只有只读权限,无法新增

四、创建只拥有某个数据库所有权限用户

db.createuser({
  user: "test2",
  pwd: "123456",
  roles: ["dbowner"]
})

连接时要指定数据库,不然会报错

连接成功后

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com