www.insecure.org является великолепным местом, чтобы начать искать программное обеспечение тестирования уязвимости и конечно Google.
Первое, что пришло на ум несколько инструментов приходят на ум... - nmap - metasploit - святой - комплект отрыжки - защита LAN
Один это для запоминания при обеспечении чего-либо подключенного к сети... Это никогда не может полностью защищаться, пока это не отключается из Интернета. Это кажется на взятие всех соответствующих шагов для не допускания деточек сценария и вероятно большей части автоволшебства h4ck инструменты. Но помните, с правильной мотивацией/талантом/временем нет ничего, что можно сделать для защиты себя от "несанкционированного доступа".
После того, как логика инкапсулирована в хранимую процедуру, разрешения на базовые объекты не требуются. Один из способов выполнить то, что вы хотите сделать, - использовать триггер на столе. Что-то вроде:
create trigger tr_del_tbl on tbl after delete as
begin
if user_name() = 'foobar' and exists (select 1 from deleted)
rollback
end
Я бы также использовал для этого роль вместо одного конкретного пользователя. Таким образом, если позже у вас появится другой пользователь, который нуждается в аналогичном лечении, вам не придется изменять триггер; вы просто добавляете их к роли.
Не существует модели, основанной на разрешениях, которая будет делать это, если вы не назначаете права вручную на основе того, что делает хранимая процедура. Ваш единственный выход - это триггеры. Имейте в виду, что это будет работать только в том случае, если не используется EXECUTE AS, который изменил бы способ пользователя, о котором сообщает функция user_name ().