La colección system.users en la base de datos admin almacena datos de usuario.
Información deautenticación y autorización.Para gestionar los datos de esta colección, MongoDB proporciona comandos de gestión de usuarios.
system.users Esquema
Los documentos de la colección system.users tienen el siguiente esquema:
{ _id: <system defined id>, userId : <system assigned UUID>, user: "<name>", db: "<database>", credentials: { <authentication credentials> }, roles: [ { role: "<role name>", db: "<database>" }, ... ], customData: <custom information>, authenticationRestrictions : [ <documents> ] }
Cada documento system.users tiene los siguientes campos:
admin.system.users.userIdUn identificador único para el usuario asignado al usuario al momento de su creación.
admin.system.users.userEl nombre de usuario. Un usuario existe en el contexto de una única base de datos lógica (véase
admin.system.users.db) pero puede tener acceso a otras bases de datos a través de roles especificados en larolesmatriz.
admin.system.users.dbLa base de datos de autenticación asociada al usuario. Los privilegios del usuario no se limitan necesariamente a esta base de datos. El usuario puede tener privilegios en bases de datos adicionales mediante la
rolesmatriz.
admin.system.users.credentialsInformación de autenticación del usuario. Para usuarios con credenciales de autenticación almacenadas externamente, como aquellos que usan certificados Kerberos o X.509 para la autenticación, el
system.usersdocumento de ese usuario no contiene el campo.credentialsPara las credenciales de usuario SCRAM, la información incluye el mecanismo, el número de iteraciones y los parámetros de autenticación.
admin.system.users.rolesUna matriz de roles asignados al usuario. Esta matriz contiene tanto roles predefinidos como roles definidos por el usuario.
Un documento de rol tiene la siguiente sintaxis:
{ role: "<role name>", db: "<database>" } Un documento de rol tiene los siguientes campos:
admin.system.users.roles[n].roleEl nombre de un rol. Un rol puede ser un rol integrado proporcionado por MongoDB o un rol personalizado definido por el usuario.
Al especificar un rol mediante los comandos de administración de roles o de administración de usuarios, puede especificar solo el nombre del rol (por
"readWrite"ejemplo,) si el rol existe en la base de datos en la que se ejecuta el comando.
Ejemplo
Considere el siguiente documento en la colección system.users:
{ "_id" : "home.Kari", "userId" : UUID("ec1eced7-055a-4ca8-8737-60dd02c52793"), "user" : "Kari", "db" : "home", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "S/xM2yXFosynbCu4GzFDgQ==", "storedKey" : "Ist4cgpEd1vTbnRnQLdobgmOsBA=", "serverKey" : "e/0DyzS6GPboAA2YNBkGYm87+cg=" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "p1G+fZadAeYAbECN8F/6TMzXGYWBaZ3DtWM0ig==", "storedKey" : "LEgLOqZQmkGhd0owm/+6V7VdJUYJcXBhPUvi9z+GBfk=", "serverKey" : "JKfnkVv9iXwxyc8JaapKVwLPy6SfnmB8gMb1Pr15T+s=" } }, "authenticationRestrictions" : [ { "clientSource" : [ "69.89.31.226" ], "serverAddress" : [ "172.16.254.1" ] } ], "customData" : { "zipCode" : "64157" }, "roles" : [ { "role" : "read", "db" : "home" }, { "role" : "readWrite", "db" : "test" } ] }
El documento muestra que la Kari base de datos de autenticación de un usuario es la home base de datos. Kari tiene el rol en read la home base de datos, el rol en readWrite la test base de datos.