Мне надо, чтобы пользователь мог ввести имя пользователя, после чего я создаю его в БД.
Вопрос в том, как это имя правильно заэскейпить, то есть помешать ввести 'xx; drop table'?
Вызов в базу делается через клиентскую библиотеку (а точнее, через питоновскую обёртку над ней). В этих библиотеках есть функция типа exectute(stmt, params), которая умеет подставлять параметры в запрос, но эта подстановка не работает с DDL выражениями.