root 账号在 admin 数据库下创建,拥有 Mongodb 内置的「root」权限;使用 root 账号登录数据库后,用户可以根据需要创建更多账号。可通过 mongo shell 的 show users 查看当前用户信息。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提到的是MongoDB数据库中关于用户权限管理的内容。在MongoDB中,确实可以创建具有特定权限的用户来管理不同的数据库访问控制。不过,直接提及使用"root"账号可能与MongoDB的最佳实践有所偏差。在MongoDB中,更推荐的做法是使用角色-based的权限控制体系,而不是直接使用一个类似"root"的超级用户直接进行日常操作。
内置角色:MongoDB有一系列预定义的角色,如readWrite
、dbAdmin
、userAdmin
等,这些角色可以分配给数据库用户,以赋予他们相应的权限。例如,dbAdmin
角色允许用户在指定数据库上执行管理操作,但不包括对用户和角色管理的权限;而userAdmin
角色则允许在特定数据库上管理用户和角色,但不包括其他数据库管理操作。
超级用户角色:虽然MongoDB没有直接命名的"root"用户概念,但存在类似超级管理员的角色,如root
(在admin数据库中)和__system
,这两个角色拥有几乎所有的权限,类似于传统意义上的"root"权限。通常,建议仅在部署初期或进行特殊维护时使用,并且要严格控制这类用户的使用和访问。
创建用户:通过mongo shell或者使用MongoDB的管理工具,可以创建具有特定角色的用户。例如,创建一个具有读写权限的用户,可以使用如下命令:
use admin
db.createUser(
{
user: "myUser",
pwd: "password123",
roles: [ { role: "readWrite", db: "myDatabase" } ]
}
)
查看用户信息:如您所述,可以通过show users
命令在当前数据库中查看用户列表。如果想要在特定数据库(比如admin数据库)查看用户,需要先切换到该数据库:
use admin
show users
安全建议:出于安全考虑,建议尽量避免直接使用具有广泛权限的账户进行日常操作。而是应该根据实际需求,为不同操作和人员分配最小必要权限的角色,遵循最小权限原则。
请确保在配置MongoDB实例时,也启用了访问控制(security.authorization),这将强制所有客户端连接都必须通过验证,进一步增强安全性。