system.users 集合

    在本页

    system.users 集合在 admin 数据库中,保存了用户身份验证授权的信息。为了管理这个集合的数据,MongoDB 提供了用户管理指令。

    system.users 集合的Schema

    system.users 集合中的文档具有以下的 schema:

    复制

    1. {
    2. _id: <system defined id>,
    3. userId : <system assigned UUID>, // Starting in MongoDB 4.0.9
    4. user: "<name>",
    5. db: "<database>",
    6. credentials: { <authentication credentials> },
    7. roles: [
    8. { role: "<role name>", db: "<database>" },
    9. ...
    10. ],
    11. customData: <custom information>,
    12. authenticationRestrictions : [ <documents> ] // Starting in MongoDB 4.0
    13. }

    每个 system.users 文档都有以下字段:

    • admin.system.users.``userId

    创建时分配给用户的唯一标识符。userId 适用于在MongoDB 4.0.9 及更高的版本创建的用户

    • admin.system.users.``user

    用户名。用户位于单个逻辑数据库的上下文中(请参考资料admin.system.users.db),但可以通过roles组中指定的角色访问其他数据库。

    • admin.system.users.``db

    与用户关联的身份验证数据库。用户的权限不一定限于此数据库。用户可以通过该roles组在其他数据库中拥有特权。

    • admin.system.users.``credentials

    用户的身份验证信息。对于具有外部存储的身份验证凭据的用户,例如使用 Kerberos 或x.509证书进行身份验证的system.users 用户,该用户的文档不包含该 credentials字段。对于 SCRAM用户凭据,该信息包括机制,迭代计数和身份验证参数。

    也可以看看

    • admin.system.users.``roles

    授予用户的一系列角色。该组包含 内置角色用户定义角色

    角色文档具有以下语法:

    复制

    1. { role: "<role name>", db: "<database>" }

    角色文档有以下字段

    `admin.system.users.roles[n].``role

    ​ 角色名称。角色可以是 MongoDB 提供的内置角色,也可以是用户自定义角色

    admin.system.users.roles[n].``db

    ​ 定义角色的数据库的名称。

    使用角色管理用户管理命令指定"readWrite"角色时,如果运行命令的数据库中存在该角色,则可以单独指定角色名称(例如“ readWrite”)。

    • admin.system.users.``customData

    有关用户的可选自定义信息。

    • admin.system.users.``authenticationRestrictions

    服务器为用户强制执行的一系列身份验证限制。该数组包含 IP 地址和 CIDR 范围的列表,允许用户从中连接到服务器或服务器可以从中接受用户。

    版本4.0中的新功能。

    Example

    考虑system.users集合中的以下文档:

    复制

    1. {
    2. "_id" : "home.Kari",
    3. "userId" : UUID("ec1eced7-055a-4ca8-8737-60dd02c52793"), // Available starting in MongoDB 4.0.9
    4. "user" : "Kari",
    5. "db" : "home",
    6. "credentials" : {
    7. "SCRAM-SHA-1" : {
    8. "iterationCount" : 10000,
    9. "salt" : "S/xM2yXFosynbCu4GzFDgQ==",
    10. "storedKey" : "Ist4cgpEd1vTbnRnQLdobgmOsBA=",
    11. "serverKey" : "e/0DyzS6GPboAA2YNBkGYm87+cg="
    12. },
    13. "SCRAM-SHA-256" : {
    14. "iterationCount" : 15000,
    15. "salt" : "p1G+fZadAeYAbECN8F/6TMzXGYWBaZ3DtWM0ig==",
    16. "storedKey" : "LEgLOqZQmkGhd0owm/+6V7VdJUYJcXBhPUvi9z+GBfk=",
    17. "serverKey" : "JKfnkVv9iXwxyc8JaapKVwLPy6SfnmB8gMb1Pr15T+s="
    18. }
    19. },
    20. "authenticationRestrictions" : [ // Available starting in MongoDB 4.0
    21. { "clientSource" : [ "69.89.31.226" ], "serverAddress" : [ "172.16.254.1" ] }
    22. ],
    23. "customData" : {
    24. "zipCode" : "64157"
    25. },
    26. "roles" : [
    27. {
    28. "role" : "read",
    29. "db" : "home"
    30. },
    31. {
    32. "role" : "readWrite",
    33. "db" : "test"
    34. }
    35. ]
    36. }

    该文档显示用户Kari的身份验证数据库是 home数据库。在数据库中Kari 具有 read 角色,在 test 数据库中具有readWrite角色 。

    原文链接:https://docs.mongodb.com/manual/reference/system-users-collection/

    译者:谢伟成

    参见

    原文 - system.users Collection