MongoDB中的admin和user数据库:它们是什么,有什么区别,如何使用?
MongoDB是一种非关系型数据库,它以文档的形式存储数据。MongoDB中的数据组织结构是:数据库(database)-> 集合(collection)-> 文档(document)。一个MongoDB实例可以包含多个数据库,每个数据库可以包含多个集合,每个集合可以包含多个文档。
在MongoDB中,有两个特殊的数据库:admin和user。这两个数据库都是MongoDB默认提供的,它们有着不同的作用和用法。本文将介绍这两个数据库的概念,区别和操作方法。
admin数据库
admin数据库是MongoDB中最高级别的数据库,它用于存储全局配置信息和用户权限信息。在admin数据库中,有两个重要的集合:
1.system.users:存储了所有用户的账号和密码信息,以及用户所属的角色(role)。角色决定了用户对哪些数据库和集合有哪些操作权限。
2.system.version:存储了MongoDB的版本信息,以及特性兼容性信息。
如果要对MongoDB进行安全认证(authentication),就需要在admin数据库中创建一个超级管理员用户(superuser),这个用户拥有所有数据库和集合的读写权限。创建超级管理员用户的命令如下:
创建超级管理员用户后,就可以启用安全认证模式,让MongoDB只允许授权的用户访问数据。启用安全认证模式的方法是,在启动MongoDB时加上--auth参数,或者在配置文件中加上security.authorization: enabled选项。
启用安全认证模式后,就需要使用超级管理员用户的账号和密码来连接MongoDB,并且为其他数据库创建普通用户(normal user),这些用户只能访问指定的数据库和集合。