¿Es posible imponer permisos de solo lectura utilizando el código System.Data.SqlClient
que accede a una base de datos del servidor Sql?¿Es posible aplicar el comportamiento de solo lectura con SqlCommand?
Quiero permitir que los usuarios de confianza escriban sus propias instrucciones SELECT, en un sitio web.
NO Im no trolling aquí! Las soluciones obvias son crear un usuario de solo lectura en la base de datos y usar esas credenciales en la cadena de conexión, y seguramente solo un idiota acepta una declaración de SQL en una página web. Este es un problema de implementación del usuario, no confío en que alguien más lo configure correctamente y no quiero escribir código para verificar que la cadena de conexión de solo lectura sea de solo lectura.
Una solución sería analizar el SQL y verificar que sea un comando de solo lectura, o hacer algo similar. Lo que quiero hacer es hacer algo como;
SqlConnection conn = new SqlConnection(myConnectionString, Flags.Readonly)
actualización dado una cadena de conexión con privilegios SA, "crear bla usuario con password = xxx" "usar mi-db" "crear inicio de sesión, bla" "concesión seleccionar en mitabla a bla". Luego crea una nueva cadena de conexión.
gracias por responder la pregunta –
EXEC ('DR' + 'OP' + 'Tab' + 'LE' + 'Us' + 'ers') –