Compartir a través de


Privilegios de lectura y escritura con usuarios nativos secundarios en Azure DocumentDB

Azure DocumentDB admite usuarios nativos secundarios de DocumentDB con roles especializados de solo lectura y escritura, lo que permite la delegación segura del acceso a los datos. La cuenta administrativa integrada, creada durante el aprovisionamiento del clúster, tiene privilegios completos, incluida la administración de usuarios. Los usuarios secundarios se replican automáticamente en réplicas de clúster, pero la administración de usuarios debe realizarse en el clúster principal.

Prerrequisitos

  • Una suscripción de Azure

  • Un clúster de Azure DocumentDB existente

Roles nativos

Azure DocumentDB admite el control de acceso basado en rol nativo para los usuarios secundarios con los siguientes roles:

Description
readWriteAnyDatabase Permisos de lectura y escritura completos, incluida la administración de bases de datos
clusterAdmin Permisos de lectura y escritura completos, incluida la administración de bases de datos
readAnyDatabase Permisos de solo lectura

Administrar usuarios y roles mediante controladores o herramientas de MongoDB como Shell de MongoDB (mongosh).

Nota:

Solo se admiten usuarios de lectura y escritura completos con privilegios de administración de bases de datos y operaciones. Los roles no se pueden asignar por separado.

Autenticación y realización de operaciones mediante el shell de MongoDB

Autentíquese mediante la cuenta administrativa integrada creada durante el aprovisionamiento del clúster. Esta cuenta tiene privilegios exclusivos de administración de usuarios (userAdmin) en el clúster.

  1. Abra un terminal en un cliente con el shell de MongoDB instalado.

  2. Obtenga el nombre del clúster de Azure DocumentDB y las credenciales actuales.

    Sugerencia

    Puede obtener la cadena de conexión nativa para el clúster en Azure Portal mediante la sección Cadenas de conexión.

  3. Conéctese mediante la siguiente cadena de conexión:

    mongosh "mongodb+srv://<username>:<password>@<cluster-name>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    

Administrar usuarios

Crea un nuevo usuario en el clúster donde se ejecuta el comando . El createUser comando devuelve un error de usuario duplicado si el usuario ya existe.

  1. Cree un usuario administrativo del plano de datos.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"clusterAdmin",db:"admin" },
          { role:"readWriteAnyDatabase", db:"admin" }
        ]
      }
    )
    
  2. Cree un usuario de solo lectura.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"readAnyDatabase",db:"admin" }
        ]
      }
    )
    
  3. Actualice un usuario en la base de datos ejecutando el updateUser comando .

    use admin
    
    db.runCommand(
      {
        updateUser:"<username>",
        pwd : "<new cleartext password>"
      }
    )
    

    Nota:

    El comando solo admite la actualización de la contraseña.

  4. Quite un usuario del clúster.

    use admin
    
    db.runCommand(
      {
        dropUser:"<username>"
      }
    )
    
  5. Recupere detalles sobre todos los usuarios nativos del clúster o especifique un único usuario para obtener información sobre sus roles y otros atributos.

    use admin
    
    db.runCommand(
      {
        usersInfo:1
      }
    )