Я позволяю своим пользователям выполнять SQL-запросы в приложении, которое я создаю. Они могут вводить строки подключения к базе данных (поддерживаются mysq, pg и другие rdbms). Есть ли способ разрешить операторы SELECT только для методов выборки, подобных этому?
client = Sequel.connect "mysql2://user:pass@hostname/some_db"
client.fetch("SELECT * FROM sample_table").all
и запретить следующее
client.fetch("DROP DATABASE some_db").all
client.fetch("TRUNCATE some_table").all
client.fetch("ALTER some_table").all
и могу ли я также получить таблицы и типы данных столбцов каждой таблицы, используя драгоценный камень продолжения?