Compartir a través de


Privilegios de lectura y escritura con usuarios secundarios en la base de datos de Azure Cosmos DB for MongoDB (versión preliminar)

El núcleo virtual de Azure Cosmos DB para MongoDB ahora admite usuarios secundarios con roles especializados de lectura y escritura. Esta característica permite a los usuarios secundarios acceder a los datos y modificarlos, lo que facilita la delegación de responsabilidades al tiempo que mejora la seguridad de los datos. Al permitir el control de acceso pormenorizado, los equipos pueden ampliar con confianza el acceso a los datos a varias partes interesadas, como desarrolladores y analistas, sin poner en peligro la integridad del sistema.

Configuración de usuarios secundarios

Nota:

Puede habilitar o deshabilitar esta característica mediante una plantilla de ARM o a través de la CLI de Azure durante la fase de versión preliminar.

Mediante la CLI de Azure

    az resource patch --ids "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroup}/providers/Microsoft.DocumentDB/mongoClusters/{ClusterName}" --api-version 2024-10-01-preview --properties "{\"previewFeatures\": [\"GeoReplicas\", \"EnableReadOnlyUser\"]}"

Uso de una plantilla de Resource Manager

"previewFeatures": {
            "value": [
                "EnableReadOnlyUser"
            ]
        }

Comandos y ejemplos admitidos

El núcleo virtual de MongoDB ahora admite el control de acceso basado en rol (RBAC) para los usuarios secundarios con privilegios de lectura y escritura. Esto permite a los administradores asignar roles que conceden acceso a las bases de datos secundarias para operaciones de lectura esenciales a la vez que protegen la integridad de los datos principales.

Nota:

Puede usar cualquiera de los controladores de MongoDB o mongotools, como mongosh, para realizar estas operaciones.

Autenticación y realización de operaciones mediante Mongosh

mongosh mongodb+srv://<YOUR_USERNAME>:<YOUR_PASSWORD>@>YOUR_HOST>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000

Nota:

Asegúrese de permitir la lista de direcciones IP del cliente en la configuración de red en Azure Portal.

CreateUser

Cree un nuevo usuario en la base de datos donde se ejecuta el comando. El comando createUser devuelve un error de usuario duplicado si el usuario existe.

Rol de administrador de datos

use admin
db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"clusterAdmin",db:"admin" },
            { role:"readWriteAnyDatabase", db:"admin" }
        ]
    }
)

ReadOnly

use admin
db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"readAnyDatabase",db:"admin" }
        ]
    }
)

Actualizar usuario

Actualiza un usuario en la base de datos donde se ejecuta el comando. El comando updateUser solo admite la actualización de la contraseña.

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

Quitar usuario

Quita el usuario de la base de datos en la que se ejecuta el comando.

use admin
db.runCommand(
    {
        dropUser:"<username>"
    }
)

Enumerar usuarios

Devuelve información sobre uno o varios usuarios. También admite el paso de un solo usuario a usersInfo. En ese caso, devuelve información sobre el usuario, su rol, etc.

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

Limitaciones

  • Puede crear hasta 10 usuarios o roles por clúster. Si tiene un requisito para agregar más usuarios, abra una incidencia de soporte técnico.
  • El comando Updateuser ahora solo admite actualizaciones de contraseñas y no puede modificar otros campos de objeto.
  • El comando Roleinfo no se admite en la versión preliminar. Como alternativa, puede usar usersInfo.
  • Todavía no se admite la compatibilidad con RBAC para asignar roles a bases de datos o colecciones específicas.