MongoDB用户

作者: bless_vi | 来源:发表于2018-05-25 15:50 被阅读0次

        要在MongoDB中对客户端进行身份验证,您必须将相应的用户添加到MongoDB。

        为了添加一个用户,MongoDB提供了这个db.createUser()方法。添加用户时,可以将角色分配给用户以授予权限。

    在数据库中创建的第一个用户应该是具有管理其他用户权限的用户管理员

        认证数据库用户相关


        添加用户时,您可以在特定数据库中创建用户。这个数据库是用户的认证数据库。

        用户可以拥有不同数据库的权限; 

        也就是说,用户的权限不限于其身份验证数据库。

        通过分配给其他数据库中的用户角色,在一个数据库中创建的用户可以拥有对其他数据库执行操作的权限。

        用户名和认证数据库充当该用户的唯一标识符。

        也就是说,如果两个用户具有相同的名称但是在不同的数据库中创建,则它们是两个单独的用户。

        如果您打算让一个用户拥有多个数据库的权限,请在适用的数据库中创建包含角色的单个用户,而不是在不同的数据库中多次创建用户。

        集中用户数据


        在版本2.6中更改。

        MongoDB将所有用户信息(包括namepassword和)存储在 数据库中的system.users集合中。user'sauthentication databaseadmin

        请勿直接访问此集合,而应使用用户管理命令

        分片群集用户


        要为分片群集创建用户,请连接到mongos 实例并添加用户。然后,客户端通过mongos实例对这些用户进行身份验证 。

        碎片本地用户


        然而,一些维护操作,如cleanupOrphaned, compactrs.reconfig(),需要分片集群特定的碎片直接连接。要执行这些操作,您必须直接连接到分片并作为分片本地 管理用户进行身份验证。

        要创建分片本地管理用户,请直接连接到分片并创建用户。MongoDB将分片本地用户存储在分片admin 本身的数据库中。

        这些分片本地用户完全独立于通过添加到分片群集的用户mongos碎片本地用户是碎片的本地用户,无法访问mongos

        直接连接到碎片应该只用于特定于碎片的维护和配置。一般来说,客户端应该通过连接到分片群集mongos

        本地主机异常


        本地主机例外允许您启用访问控制,然后在系统中创建第一个用户。

        在本地主机例外情况下,启用访问控制后,连接到本地主机接口并在admin数据库中创建第一个用户。第一个用户必须有权创建其他用户,比如与用户 userAdminuserAdminAnyDatabase角色。

        版本3.4中更改: MongoDB 3.4扩展了localhost异常以允许执行该 db.createRole()方法。此方法允许用户通过LDAP授权在MongoDB内创建映射到LDAP中定义的角色的角色。有关更多信息,请参阅LDAP授权

        在版本3.0中更改:本地主机异常已更改,以便这些连接只能 访问admin 数据库上的第一个用户。在以前的版本中,使用localhost异常获得访问权限的连接对MongoDB实例具有不受限制的访问权限。

        localhost异常仅适用于在MongoDB实例中没有创建用户的情况。

        在分片群集的情况下,本地主机例外将单独应用于每个分片以及整个群集。一旦创建了分片群集并通过mongos实例添加用户管理员,您仍然必须防止未经授权访问单个分片。按照以下步骤为集群中的每个分片进行操作:

            创建一个管理用户,或者

            启动时禁用localhost异常。要禁用本地主机例外,请将enableLocalhostAuthBypass参数设置为0。

    相关文章

      网友评论

        本文标题:MongoDB用户

        本文链接:https://www.haomeiwen.com/subject/bfcujftx.html