SQL Server 2008 - удаление данных исключительно из хранимой процедуры - PullRequest
0 голосов
/ 22 июля 2011

Я бы хотел запретить опытным пользователям удалять данные с помощью SQL Server Management Studio. Мне нужно заархивировать данные и добавить некоторую информацию в контрольный журнал при удалении данных.

  • Есть ли способ остановить их, когда они пытаются удалить данные из SSMS?
  • Есть ли способ узнать, какой процесс вызвал удаление? например из SSMS, приложения, хранимые процедуры?
  • Можно ли разрешить удаление только из хранимой процедуры?

Спасибо

Ответы [ 3 ]

0 голосов
/ 22 июля 2011

Создайте новый логин и пользователя базы данных для этого логина. Затем предоставьте разрешение на удаление этому пользователю и отзовите его от всех остальных. Напишите процедуру [s], которая удаляет данные, добавьте WITH EXECUTE AS [previously created user that can delete data]. Предоставьте другим пользователям права на выполнение процедуры [s].

0 голосов
/ 22 июля 2011

Из вашего второго предложения у меня сложилось впечатление, что удаление - это не реальная проблема, а то, что вам нужно архивировать данные и создавать контрольный журнал при удалении данных.Почему бы не использовать триггер удаления?

0 голосов
/ 22 июля 2011

Ну, они продвинутые пользователи, не так ли? Вы можете установить для них запрет на удаление.

DENY DELETE TO [Your_User]
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...