Overview
La La opción --schemaSource indica a mongosqld que utilice una base de datos específica en la instancia de MongoDB conectada para el almacenamiento del esquema. mongosqld puede crear una nueva base de datos para almacenamiento de esquemas o utilizar una base de datos existente.
Si especificas una base de datos existente que se haya utilizado previamente para el almacenamiento de esquemas, la opción --schemaMode determina si mongosqld escribe nuevos datos de esquema en la base de datos especificada o solo lee de ella. Si especifica una base de datos que no existe actualmente, debe establecer --schemaMode en auto.
El siguiente comando de ejemplo utiliza una base de datos denominada sampleDb para almacenar información de esquema y configura --schemaMode en auto.
mongosqld --schemaSource sampleDb --schemaMode auto
Para obtener más información sobre los modos de muestreo, consulta el cuadro de referencia de modos de muestreo.
Regenerar el esquema
Por defecto, mongosqld no vuelve a muestrear datos automáticamente después de generar el esquema. Especifica la opción --schemaRefreshIntervalSecs para dirigir mongosqld a volver a muestrear automáticamente los datos y regenerar el esquema en un cronograma fijo.
Para forzar una actualización única del esquema, use el comando FLUSH SAMPLE desde su cliente SQL.
Permisos de usuario para esquemas persistentes
Si tu instancia de MongoDB utiliza autenticación, además de los permisos descritos en la sección muestreo en caché,debes especificar un usuario de MongoDB con permiso de escritura en la base de datos de esquema especificada.
Para crear un usuario con los permisos necesarios para ejecutar mongosqld con un esquema persistente, puedes crear un rol personalizado con los permisos mínimos necesarios, como se describe en Permisos de usuario para muestreo almacenado en caché, o utilizar el rol integrado readAnyDatabase. En cualquier caso, el usuario también necesita permisos de escritura en la base de datos del esquema especificado.
db.getSiblingDB("admin").createUser( { user: "<username>", pwd: "<password>", roles: [ { "role": "readAnyDatabase", "db": "admin" }, { "role": "readWrite", "db": "<dbname>" } ] } )
En el siguiente ejemplo, un usuario llamado bicUser con la contraseña myPass proporciona credenciales para leer y actualizar una base de datos de esquema llamada schemaDb.
mongosqld --auth -u bicUser -p myPass --schemaSource schemaDb --schemaMode auto