Как избежать добавления пользователями имени хранимой процедуры, например sp_%? - PullRequest
2 голосов
/ 28 сентября 2011

Кто-то сказал мне, что Политика управления DMF и условие могут сделать это.Кто-нибудь знает, как это реализовать.

Ответы [ 2 ]

2 голосов
/ 06 ноября 2013
  1. Открыть SQL Management Studio
  2. Перейти в «Управление» -> Условия -> Создать новое условие
  3. Введите имя для условия.
  4. Выбрать фасет«Хранимая процедура»
  5. Введите в столбце «Поле» @ name
  6. Введите в столбце «Оператор» НЕ НРАВИТСЯ
  7. Введите в столбце «Значение» 'sp [_]% '
  8. Нажмите кнопку ОК, чтобы сохранить

  9. Создать политику.Перейдите в раздел «Управление» -> Политика -> Создать новую политику

  10. Введите имя для политики
  11. Выберите название условия в раскрывающемся меню «Проверка условия»
  12. Установите «Режим оценки» на «При изменении: Предотвратить»
  13. Включить политику
  14. Нажмите OK, чтобы сохранить и включить политику

  15. Проверьте политику, введя новый запрос

CREATE PROCEDURE sp_test @LastName nvarchar (50), @FirstName nvarchar (50) AS

SET NOCOUNT ON;ВЫБЕРИТЕ Имя, Фамилия, Отдел ОТ HumanResources.vEmployeeDepartmentHistory ГДЕ FirstName = @FirstName AND LastName = @LastName AND EndDate IS NULL;GO

В результате:

Политика 'StoredProcNamingPolicy' была нарушена>> 'SQLSERVER: \ SQL \ DB01 \ DEFAULT \ Databases \ MyDB \ StoredProcedures \ dbo.sp_test.Эта транзакция будет отменена.Условие политики: '@Name NOT LIKE' sp [_]% '' Описание политики: '' Дополнительная справка: '': '' Заявление: 'CREATE PROCEDURE sp_test @LastName nvarchar (50), @FirstName nvarchar (50) AS

SET NOCOUNT ON;ВЫБЕРИТЕ FirstName, LastNam ... '.Сообщение 3609, Уровень 16, Состояние 1, Процедура sp_syspolicy_dispatch_event, Строка 65 Транзакция завершилась в триггере.Пакет был прерван.

2 голосов
/ 28 сентября 2011

Да, вы можете сделать это через Управление на основе политик.Вы создаете Условие для процедуры Фасет с параметром @ Name , равным NOT LIKE 'sp_%'.Затем вы создаете политику для этого условия и можете применять ее по требованию или по расписанию.

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