password - mysql privileges
Conexión abierta sql en modo de solo lectura (3)
Esta pregunta sale por curiosidad. Busqué en Google para esto, pero no obtuve una pista.
Supongamos que un usuario tiene acceso completo de lectura / escritura a la base de datos MySQL. Me pregunto, ¿hay alguna forma (algún parámetro en la cadena de conexión) de conectarse a la base de datos con el mismo nombre de usuario y contraseña en modo de solo lectura?
Quiero esto sin cambiar los permisos de este usuario porque el mismo usuario puede requerir permiso de escritura también en otro momento. Esto sería útil (si es posible) para evitar la modificación accidental de la base de datos.
Dependiendo de su caso de uso y del control que tenga, puede hacer que el código de llamada "establezca solo la transacción" inmediatamente después de la conexión, o utilizar el parámetro --init-command en connect. Esto funcionó para un caso de uso de prueba que tenemos,
Aquí está el documento de transacción establecido: https://dev.mysql.com/doc/refman/5.7/en/set-transaction.html , de manera similar, también puede configurarlo como una variable de sesión si eso hace una diferencia https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_transaction_read_only .
La mejor solución aquí es crear otra cuenta en el servidor mysql con permisos de solo lectura y conectarse utilizando eso.
La respuesta a tu pregunta es
No, no hay manera de especificar el acceso de solo lectura en la cadena de conexión.
Las alternativas son
1. Crear un usuario SQL con permiso de lectura.
MVC3 Cadena de conexión MySQL de solo lectura
2. Crear vistas o procedimientos almacenados con permisos que comprueben la lógica.
Permiso MS SQL Otorgar solo una vista
MySQL Conceder a un usuario permiso para ver solo una vista mysql
3. Implemente la capa de permisos en su lógica de negocios.
¡Buena suerte!