Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Policies  [new]
Platonyan
Member

Откуда:
Сообщений: 29
Добрый день, в моей базе есть xронимки с префиксом 'sp_'
как поставить policie чтоб запрещал только ново создаваемые на префикс SP_.?
11 мар 14, 12:50    [15703742]     Ответить | Цитировать Сообщить модератору
 Re: Policies  [new]
Glory
Member

Откуда:
Сообщений: 104751
1. создать полиси
2. назначить его на базу
11 мар 14, 13:04    [15703853]     Ответить | Цитировать Сообщить модератору
 Re: Policies  [new]
o-o
Guest
а в чем проблема-то?
в GUI вроде сходу получилось

create proc sp_test
as select 1;
-------------------------
Policy 'user_stored_procs_with_sp' has been violated by 'SQLSERVER:\SQL\GC0050V7\SQL_2008\Databases\aero_test\StoredProcedures\dbo.sp_test'.
This transaction will be rolled back.
Policy condition: '@Name LIKE 'sp_''
Policy description: ''
Additional help: '' : ''
Statement: 'create proc sp_test
as select 1;'.
Msg 3609, Level 16, State 1, Procedure sp_syspolicy_dispatch_event, Line 65
The transaction ended in the trigger. The batch has been aborted.


К сообщению приложен файл. Размер - 29Kb
11 мар 14, 13:07    [15703877]     Ответить | Цитировать Сообщить модератору
 Re: Policies  [new]
o-o
Guest
фу, простите ради бога, условие наоборот надо:
@Name NOT LIKE 'sp_%'

мое предыдущее творение наоборот пропускало одно-единственное имя для процедуры: sp_
11 мар 14, 13:30    [15704093]     Ответить | Цитировать Сообщить модератору
 Re: Policies  [new]
Platonyan
Member

Откуда:
Сообщений: 29
У меня так и поставлено Policie. Проблема возникает ел есть нужда сделать Alter Procedure sp_... Что делать уже с существующими sp_ ?
11 мар 14, 15:50    [15705265]     Ответить | Цитировать Сообщить модератору
 Re: Policies  [new]
o-o
Guest
Platonyan,
если не нравится, что срабатывает на ALTER PROC,
поменяйте сгенеренный триггер: уберите из него ALTER_PROCEDURE.
у меня проканалось

	CREATE TRIGGER [syspolicy_server_trigger] ON ALL SERVER 
	WITH EXECUTE AS '##MS_PolicyEventProcessingLogin##'
	FOR ALTER_AUTHORIZATION_DATABASE,ALTER_PROCEDURE,ALTER_SCHEMA,CREATE_PROCEDURE,RENAME
	AS
	BEGIN
		DECLARE @event_data xml
		SELECT @event_data = EVENTDATA()
		EXEC [msdb].[dbo].[sp_syspolicy_dispatch_event] @event_data = @event_data, @synchronous = 1
	END
11 мар 14, 18:17    [15706337]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить