【发布时间】:2022-05-09 15:09:47
【问题描述】:
我正在练习 ont mongodb 文档:https://docs.mongodb.com/manual/tutorial/enable-authentication/
我不知道示例中的“admin”数据库是否只是为教程创建的数据库,还是专门为管理管理员用户而创建的内置数据库。
提前致谢。
【问题讨论】:
我正在练习 ont mongodb 文档:https://docs.mongodb.com/manual/tutorial/enable-authentication/
我不知道示例中的“admin”数据库是否只是为教程创建的数据库,还是专门为管理管理员用户而创建的内置数据库。
提前致谢。
【问题讨论】:
这个管理数据库的主要目的是存储系统集合和用户认证和授权数据,其中包括管理员和用户的用户名、密码和角色。访问权限仅限于管理员,他们能够创建、更新和删除用户并分配角色。
【讨论】:
当您在 MongoDB 中创建数据库时,您没有启用身份验证,用户拥有该数据库的所有权限和角色,如果防火墙没有阻止端口 27017,您甚至可以远程访问数据库。
有两个特殊的数据库 admin 和 local,这些数据库的用户可以在他们有权访问的其他数据库上执行文档中提到的操作。在开发环境中,不用担心用户和密码是很方便的,但是,当用户在应用程序上远程与数据库交互时,激活用户身份验证是必不可少的。
【讨论】:
admin 和 local 数据库有什么区别?
admin 数据库是内置数据库。除了用户身份验证和授权数据,它还包括Roles,用于管理整个系统而不仅仅是单个数据库。这些角色主要与副本集和分片集群管理功能有关。
在other数据库中创建的角色除了admin 只能包含适用于其数据库的权限,并且只能从其数据库中的其他角色继承。
在admin 数据库中创建的角色可以包括适用于任何 数据库或集群资源的权限,并且可以从其他数据库以及admin 数据库中的角色继承。
【讨论】: