Modo solo lectura
El modo solo lectura bloquea todas las operaciones de modificación, permitiendo únicamente consultas SELECT.
Configuración
Sección titulada «Configuración»# Activar modo solo lecturaMSSQL_READ_ONLY=trueComportamiento
Sección titulada «Comportamiento»Operaciones permitidas
Sección titulada «Operaciones permitidas»-- Todas las consultas SELECTSELECT * FROM usersSELECT u.*, o.total FROM users u JOIN orders o ON u.id = o.user_id
-- SubconsultasSELECT * FROM (SELECT id, name FROM users) sub
-- CTEsWITH active AS (SELECT * FROM users WHERE active = 1)SELECT * FROM active
-- Agregaciones y funciones de ventanaSELECT department, AVG(salary) FROM employees GROUP BY departmentOperaciones bloqueadas
Sección titulada «Operaciones bloqueadas»-- Modificaciones de datosINSERT INTO users VALUES (1, 'test') -- BloqueadoUPDATE users SET name = 'nuevo' WHERE id = 1 -- BloqueadoDELETE FROM users WHERE id = 1 -- Bloqueado
-- DDLCREATE TABLE temp (id INT) -- BloqueadoDROP TABLE users -- BloqueadoALTER TABLE users ADD col INT -- Bloqueado
-- Ejecución de códigoEXEC sp_help -- Bloqueado (excepto procedimientos seguros)EXEC xp_cmdshell 'dir' -- Siempre bloqueadoValidación de consultas
Sección titulada «Validación de consultas»La validación usa expresiones regulares con word boundaries (\bINSERT\b, \bUPDATE\b, etc.) para evitar falsos positivos. Por ejemplo:
-- Permitido (no contiene la palabra INSERT como operación)SELECT created_at FROM transactions
-- Permitido (update_count es un nombre de columna, no una operación)SELECT update_count FROM statistics
-- Bloqueado (contiene la operación UPDATE)UPDATE users SET status = 'active'Combinación con whitelist
Sección titulada «Combinación con whitelist»Para permitir modificaciones solo en tablas específicas, combina con MSSQL_WHITELIST_TABLES:
MSSQL_READ_ONLY=trueMSSQL_WHITELIST_TABLES=temp_ai,v_temp_iaConsulta la sección Whitelist de tablas para más detalles.