У меня есть хранимая процедура, которая создает динамический SQL из пользовательского ввода и выполняет его.
create proc MySP @input nvarchar(max)
as
declare @sql nvarchar(max) = // generate sql using @input and data from tables
-- The generated SQL will need to access linked server too
exec(@sql)
Для предотвращения SQL-инъекций атаки вставки, удаления, обновления, удаления и т. Д. (Выбор в порядке), exec(@sql) as login='aReadonlyLogin'
будет работать? Это способ без использования входа только для чтения? Разработчик может не иметь разрешения на создание нового логина.