Domyślnie w programie SQL Server [public]
rola ma EXECUTE
uprawnienia sp_executesql
.
Jednak odziedziczyłem serwer bazy danych, na którym poprzednie DBA odwołało to EXECUTE
prawo sp_executesql
.
Jako tymczasowe obejście, przyznawałem EXECUTE
uprawnienia sp_executesql
według potrzeb (poprzez rolę w głównej bazie danych). Ale to zaczyna być bólem podtrzymującym.
Jeśli przyznam EXECUTE
publicznie, czy są jakieś konsekwencje, o których muszę wiedzieć?
sql-server
security
permissions
AlexLostDba
źródło
źródło
sp_executesql
. Zakładając, że dynamiczny wymóg SQL, następnie wyłączeniesp_executesql
może faktycznie zwiększyć ryzyko, ponieważ przynajmniej pozwala to na parametryzację zapytań (w przeciwieństwie doEXEC
)sp_executesql
nie jest odpowiednim środkiem łagodzącym. Przeważająca większość błędów wstrzykiwania SQL występuje u klienta, gdy instrukcja SQL jest budowana „ręcznie” przez połączenie fragmentów SQL ze zmiennymi wejściowymi, a następnie wykonuje się „tak jak jest”. Dla wszystkich tych przypadkówsp_executesql
wyłączenie nic nie pomaga.