From 785d74cee645b108da810e28405553962ef5bd24 Mon Sep 17 00:00:00 2001 From: Sergio Fonseca Date: Wed, 4 Oct 2017 15:34:37 +0100 Subject: [PATCH] Added sample policy for DB Objects Name Pattern --- .../SQL Policy Management - Name Pattern.sql | 996 ++++++++++++++++++ 1 file changed, 996 insertions(+) create mode 100644 samples/features/epm-framework/5.0/4FixImportedPolicies/SQL Policy Management - Name Pattern.sql diff --git a/samples/features/epm-framework/5.0/4FixImportedPolicies/SQL Policy Management - Name Pattern.sql b/samples/features/epm-framework/5.0/4FixImportedPolicies/SQL Policy Management - Name Pattern.sql new file mode 100644 index 00000000..3eaa52d3 --- /dev/null +++ b/samples/features/epm-framework/5.0/4FixImportedPolicies/SQL Policy Management - Name Pattern.sql @@ -0,0 +1,996 @@ +/* +This Sample Code is provided for the purpose of illustration only and is not intended to be used in a production environment. +THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +We grant You a nonexclusive, royalty-free right to use and modify the Sample Code and to reproduce and distribute +the object code form of the Sample Code, provided that You agree: +(i) to not use Our name, logo, or trademarks to market Your software product in which the Sample Code is embedded; +(ii) to include a valid copyright notice on Your software product in which the Sample Code is embedded; and +(iii) to indentify, hold harmless, and defend Us and Our suppliers from and against any claims or lawsuits, +including attorneys' fees, that arise or result from the use or distribution of the Sample Code. + +Please note: None of the conditions outlined in the disclaimer above will supersede the terms and +conditions contained within the Premier Customer Services Description. + +*/ + +use msdb +GO + +-------------------------------------------------------------------------------------------------------------------------------------------- +--POLICY CATEGORY: Name Pattern +DECLARE @policy_category_id int; + +SELECT @policy_category_id = policy_category_id FROM dbo.syspolicy_policy_categories where name = N'Name_Pattern' + +IF (@policy_category_id IS NULL) +BEGIN + EXEC msdb.dbo.sp_syspolicy_add_policy_category + @name = N'Name_Pattern' + , @mandate_database_subscriptions = 1 + , @policy_category_id = @policy_category_id OUTPUT; +END + +SELECT @policy_category_id as NEW_policy_category_id + +GO +/* +-------------------------------------------------------------------------------------------------------------------------------------------- +--DELETE ALL POLICIES +DECLARE @policy_id INT + +DECLARE CURSOR_POLICIES_TO_DELETE CURSOR FAST_FORWARD FOR + SELECT policy_id FROM dbo.syspolicy_policies P + INNER JOIN dbo.syspolicy_policy_categories PC + ON P.policy_category_id = PC.policy_category_id + WHERE PC.[name] = N'Name_Pattern' + +OPEN CURSOR_POLICIES_TO_DELETE + +FETCH NEXT FROM CURSOR_POLICIES_TO_DELETE +INTO @policy_id + +WHILE @@FETCH_STATUS = 0 +BEGIN + EXEC msdb.dbo.sp_syspolicy_delete_policy @policy_id=@policy_id + + FETCH NEXT FROM CURSOR_POLICIES_TO_DELETE + INTO @policy_id +END +CLOSE CURSOR_POLICIES_TO_DELETE +DEALLOCATE CURSOR_POLICIES_TO_DELETE + +GO + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--DELETE ALL OBJECTSETS AND TARGET SET +--SELECT * FROM dbo.syspolicy_object_sets where is_system = 0 +DECLARE @object_set_id INT +DECLARE @target_set_id INT + +DECLARE CURSOR_OBJECTS_SETS_TO_DELETE CURSOR FAST_FORWARD FOR + SELECT object_set_id FROM dbo.syspolicy_object_sets where is_system = 0 + +OPEN CURSOR_OBJECTS_SETS_TO_DELETE + +FETCH NEXT FROM CURSOR_OBJECTS_SETS_TO_DELETE +INTO @object_set_id + +WHILE @@FETCH_STATUS = 0 +BEGIN + BEGIN TRY + + EXEC msdb.dbo.sp_syspolicy_delete_object_set @object_set_id=@object_set_id + SELECT 'DELETE @object_set_id', @object_set_id + + SELECT @target_set_id=target_set_id FROM dbo.syspolicy_target_sets where @object_set_id=@object_set_id + + EXEC msdb.dbo.sp_syspolicy_delete_target_set @target_set_id=@target_set_id + SELECT 'DELETE @target_set_id', @target_set_id + + + END TRY + BEGIN CATCH + PRINT ERROR_MESSAGE() + END CATCH + + FETCH NEXT FROM CURSOR_OBJECTS_SETS_TO_DELETE + INTO @object_set_id +END +CLOSE CURSOR_OBJECTS_SETS_TO_DELETE +DEALLOCATE CURSOR_OBJECTS_SETS_TO_DELETE + +GO + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--DELETE ALL CONDITIONS + +DECLARE @condition_id INT + +DECLARE CURSOR_CONDITIONS_TO_DELETE CURSOR FAST_FORWARD FOR + SELECT condition_id FROM dbo.syspolicy_conditions where is_system = 0 + +OPEN CURSOR_CONDITIONS_TO_DELETE + +FETCH NEXT FROM CURSOR_CONDITIONS_TO_DELETE +INTO @condition_id + +WHILE @@FETCH_STATUS = 0 +BEGIN + BEGIN TRY + EXEC msdb.dbo.sp_syspolicy_delete_condition @condition_id=@condition_id + SELECT 'DELETE @condition_id', @condition_id + END TRY + BEGIN CATCH + PRINT ERROR_MESSAGE() + END CATCH + + FETCH NEXT FROM CURSOR_CONDITIONS_TO_DELETE + INTO @condition_id +END +CLOSE CURSOR_CONDITIONS_TO_DELETE +DEALLOCATE CURSOR_CONDITIONS_TO_DELETE + +GO +*/ + + + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Only User DB +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Only User DB', @description=N'', @facet=N'Database', @expression=N' + Bool + OR + 2 + + Bool + GT + 2 + + Numeric + ID + + + Numeric + System.Double + 4 + + + + Bool + EQ + 2 + + Bool + IsSystemObject + + + Bool + False + Bool + 0 + + +', @is_name_condition=0, @obj_name=N'', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + + + + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--DB Name Pattern + +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'DB Name Pattern', @description=N'', @facet=N'Database', @expression=N' + Bool + LIKE + 2 + + String + Name + + + String + System.String + ___[_]% + +', @is_name_condition=2, @obj_name=N'___[_]%', @condition_id=@condition_id OUTPUT +Select @condition_id as [@condition_id] + +GO + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'DB Name Pattern_ObjectSet', @facet=N'Database', @object_set_id=@object_set_id OUTPUT +Select @object_set_id +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'DB Name Pattern_ObjectSet', @type_skeleton=N'Server/Database', @type=N'DATABASE', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 +GO +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'DB Name Pattern', @condition_name=N'DB Name Pattern', @policy_category=N'Name_Pattern', @description=N'', @help_text=N'', @help_link=N'', @schedule_uid=N'00000000-0000-0000-0000-000000000000', @execution_mode=0, @is_enabled=False, @policy_id=@policy_id OUTPUT, @root_condition_name=N'', @object_set=N'DB Name Pattern_ObjectSet' +Select @policy_id +GO + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Table Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Table Name Pattern', @description=N'', @facet=N'Table', @expression=N' + Bool + LIKE + 2 + + String + Name + + + String + System.String + tbl[_]% + +', @is_name_condition=2, @obj_name=N'tbl[_]%', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Table Name Pattern_ObjectSet', @facet=N'Table', @object_set_id=@object_set_id OUTPUT +Select @object_set_id +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Table Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/Table', @type=N'TABLE', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/Table', @level_name=N'Table', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 +GO +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'Table Name Pattern', @condition_name=N'Table Name Pattern', @policy_category=N'Name_Pattern', @description=N'', @help_text=N'', @help_link=N'', @schedule_uid=N'00000000-0000-0000-0000-000000000000', @execution_mode=0, @is_enabled=False, @policy_id=@policy_id OUTPUT, @root_condition_name=N'', @object_set=N'Table Name Pattern_ObjectSet' +Select @policy_id +GO + + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Index Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Index Name Pattern', @description=N'', @facet=N'Index', @expression=N' + Bool + OR + 2 + + Bool + OR + 2 + + Bool + OR + 2 + + Bool + OR + 2 + + Bool + LIKE + 2 + + String + Name + + + String + System.String + IX[_]% + + + + Bool + 1 + + Bool + AND + 2 + + Bool + AND + 2 + + Bool + EQ + 2 + + Bool + IsClustered + + + Bool + True + Bool + 0 + + + + Bool + EQ + 2 + + Bool + IsUnique + + + Bool + False + Bool + 0 + + + + + Bool + LIKE + 2 + + String + Name + + + String + System.String + CIX[_]% + + + + + + + Bool + 1 + + Bool + AND + 2 + + Bool + EQ + 2 + + Bool + IsXmlIndex + + + Bool + True + Bool + 0 + + + + Bool + LIKE + 2 + + String + Name + + + String + System.String + XML[_]IX[_]% + + + + + + + Bool + 1 + + Bool + AND + 2 + + Bool + AND + 2 + + Bool + EQ + 2 + + Bool + IsUnique + + + Bool + True + Bool + 0 + + + + Bool + EQ + 2 + + Bool + IsClustered + + + Bool + False + Bool + 0 + + + + + Bool + 1 + + Bool + OR + 2 + + Bool + LIKE + 2 + + String + Name + + + String + System.String + PK[_]% + + + + Bool + LIKE + 2 + + String + Name + + + String + System.String + UIX[_]% + + + + + + + + + Bool + 1 + + Bool + AND + 2 + + Bool + AND + 2 + + Bool + EQ + 2 + + Bool + IsClustered + + + Bool + True + Bool + 0 + + + + Bool + EQ + 2 + + Bool + IsUnique + + + Bool + True + Bool + 0 + + + + + Bool + 1 + + Bool + OR + 2 + + Bool + LIKE + 2 + + String + Name + + + String + System.String + PK[_]% + + + + Bool + LIKE + 2 + + String + Name + + + String + System.String + CUIX[_]% + + + + + + +', @is_name_condition=0, @obj_name=N'', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + + + + + + + + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Index Name Pattern_ObjectSet', @facet=N'Index', @object_set_id=@object_set_id OUTPUT +Select @object_set_id + +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Index Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/Table/Index', @type=N'INDEX', @enabled=False, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/Table/Index', @level_name=N'Index', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/Table', @level_name=N'Table', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 + +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Index Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/UserDefinedFunction/Index', @type=N'INDEX', @enabled=False, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/UserDefinedFunction/Index', @level_name=N'Index', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/UserDefinedFunction', @level_name=N'UserDefinedFunction', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 + +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Index Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/UserDefinedTableType/Index', @type=N'INDEX', @enabled=False, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/UserDefinedTableType/Index', @level_name=N'Index', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/UserDefinedTableType', @level_name=N'UserDefinedTableType', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 + +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Index Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/View/Index', @type=N'INDEX', @enabled=False, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/View/Index', @level_name=N'Index', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/View', @level_name=N'View', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 + + +GO + +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'Index Name Pattern', @condition_name=N'Index Name Pattern', @policy_category=N'Name_Pattern', @execution_mode=0, @policy_id=@policy_id OUTPUT, @object_set=N'Index Name Pattern_ObjectSet' +Select @policy_id + + +GO + + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--CView Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'View Name Pattern', @description=N'', @facet=N'View', @expression=N' + Bool + LIKE + 2 + + String + Name + + + String + System.String + vw[_]% + +', @is_name_condition=2, @obj_name=N'vw[_]%', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'View Name Pattern_ObjectSet', @facet=N'View', @object_set_id=@object_set_id OUTPUT +Select @object_set_id +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'View Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/View', @type=N'VIEW', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/View', @level_name=N'View', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 + +GO +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'View Name Pattern', @condition_name=N'View Name Pattern', @policy_category=N'Name_Pattern', @execution_mode=0, @policy_id=@policy_id OUTPUT, @object_set=N'View Name Pattern_ObjectSet' +Select @policy_id + + +GO + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Stored Procedures Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Stored Procedures Name Pattern', @description=N'', @facet=N'StoredProcedure', @expression=N' + Bool + AND + 2 + + Bool + LIKE + 2 + + String + Name + + + String + System.String + sp% + + + + Bool + NOT_LIKE + 2 + + String + Name + + + String + System.String + sp[_]% + + +', @is_name_condition=0, @obj_name=N'', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + + + + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Stored Procedures Name Pattern_ObjectSet', @facet=N'StoredProcedure', @object_set_id=@object_set_id OUTPUT +Select @object_set_id +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Stored Procedures Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/StoredProcedure', @type=N'PROCEDURE', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/StoredProcedure', @level_name=N'StoredProcedure', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 +GO +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'Stored Procedures Name Pattern', @condition_name=N'Stored Procedures Name Pattern', @policy_category=N'Name_Pattern', @execution_mode=0, @policy_id=@policy_id OUTPUT, @root_condition_name=N'', @object_set=N'Stored Procedures Name Pattern_ObjectSet' +Select @policy_id +GO + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--UserFunction +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'UserFunction', @description=N'', @facet=N'UserDefinedFunction', @expression=N' + Bool + LIKE + 2 + + String + Name + + + String + System.String + fn[_]% + +', @is_name_condition=2, @obj_name=N'fn[_]%', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'UserFunction_ObjectSet', @facet=N'UserDefinedFunction', @object_set_id=@object_set_id OUTPUT +Select @object_set_id +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'UserFunction_ObjectSet', @type_skeleton=N'Server/Database/UserDefinedFunction', @type=N'FUNCTION', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/UserDefinedFunction', @level_name=N'UserDefinedFunction', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 +GO +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'UserFunction', @condition_name=N'UserFunction', @policy_category=N'Name_Pattern', @execution_mode=0, @policy_id=@policy_id OUTPUT, @object_set=N'UserFunction_ObjectSet' +Select @policy_id +GO + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Trigger Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Trigger Name Pattern', @description=N'', @facet=N'Trigger', @expression=N' + Bool + OR + 2 + + Bool + 1 + + Bool + AND + 2 + + Bool + EQ + 2 + + Bool + InsteadOf + + + Bool + True + Bool + 0 + + + + Bool + LIKE + 2 + + String + Name + + + String + System.String + TRI[_]% + + + + + + Bool + 1 + + Bool + AND + 2 + + Bool + EQ + 2 + + Bool + InsteadOf + + + Bool + False + Bool + 0 + + + + Bool + LIKE + 2 + + String + Name + + + String + System.String + TRA[_]% + + + + +', @is_name_condition=0, @obj_name=N'', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Trigger Name Pattern_ObjectSet', @facet=N'Trigger', @object_set_id=@object_set_id OUTPUT +Select @object_set_id + +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Trigger Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/Table/Trigger', @type=N'TRIGGER', @enabled=False, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/Table/Trigger', @level_name=N'Trigger', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/Table', @level_name=N'Table', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 + +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Trigger Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/View/Trigger', @type=N'TRIGGER', @enabled=False, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/View/Trigger', @level_name=N'Trigger', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/View', @level_name=N'View', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 + + +GO + +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'Trigger Name Pattern', @condition_name=N'Trigger Name Pattern', @policy_category=N'Name_Pattern', @execution_mode=0, @policy_id=@policy_id OUTPUT, @root_condition_name=N'', @object_set=N'Trigger Name Pattern_ObjectSet' +Select @policy_id + + +GO + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Sequence Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Sequence Name Pattern', @description=N'', @facet=N'Sequence', @expression=N' + Bool + LIKE + 2 + + String + Name + + + String + System.String + SEQ[_]% + +', @is_name_condition=2, @obj_name=N'SEQ[_]%', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Sequence Name Pattern_ObjectSet', @facet=N'Sequence', @object_set_id=@object_set_id OUTPUT +Select @object_set_id +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Sequence Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/Sequence', @type=N'SEQUENCE', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/Sequence', @level_name=N'Sequence', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'', @target_set_level_id=0 +GO +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'Sequence Name Pattern', @condition_name=N'Sequence Name Pattern', @execution_mode=0, @policy_id=@policy_id OUTPUT, @root_condition_name=N'', @object_set=N'Sequence Name Pattern_ObjectSet', @policy_category=N'Name_Pattern' +Select @policy_id +GO + + + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Partition Function Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Partition Function Name Pattern', @description=N'', @facet=N'PartitionFunction', @expression=N' + Bool + LIKE + 2 + + String + Name + + + String + System.String + PF[_]% + +', @is_name_condition=2, @obj_name=N'PF[_]%', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + + + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Partition Function Name Pattern_ObjectSet', @facet=N'PartitionFunction', @object_set_id=@object_set_id OUTPUT +Select @object_set_id + +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Partition Function Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/PartitionFunction', @type=N'PARTITIONFUNCTION', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/PartitionFunction', @level_name=N'PartitionFunction', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 +GO +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'Partition Function Name Pattern', @condition_name=N'Partition Function Name Pattern', @policy_category=N'Name_Pattern', @description=N'', @help_text=N'', @help_link=N'', @schedule_uid=N'00000000-0000-0000-0000-000000000000', @execution_mode=0, @is_enabled=False, @policy_id=@policy_id OUTPUT, @root_condition_name=N'', @object_set=N'Partition Function Name Pattern_ObjectSet' +Select @policy_id +GO + + +-------------------------------------------------------------------------------------------------------------------------------------------- +--Partition Scheme Name Pattern +Declare @condition_id int +EXEC msdb.dbo.sp_syspolicy_add_condition @name=N'Partition Scheme Name Pattern', @description=N'', @facet=N'PartitionScheme', @expression=N' + Bool + LIKE + 2 + + String + Name + + + String + System.String + PS[_]% + +', @is_name_condition=2, @obj_name=N'PS[_]%', @condition_id=@condition_id OUTPUT +Select @condition_id + +GO + + + +Declare @object_set_id int +EXEC msdb.dbo.sp_syspolicy_add_object_set @object_set_name=N'Partition Scheme Name Pattern_ObjectSet', @facet=N'PartitionScheme', @object_set_id=@object_set_id OUTPUT +Select @object_set_id + +Declare @target_set_id int +EXEC msdb.dbo.sp_syspolicy_add_target_set @object_set_name=N'Partition Scheme Name Pattern_ObjectSet', @type_skeleton=N'Server/Database/PartitionScheme', @type=N'PARTITIONSCHEME', @enabled=True, @target_set_id=@target_set_id OUTPUT +Select @target_set_id + +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database/PartitionScheme', @level_name=N'PartitionScheme', @condition_name=N'', @target_set_level_id=0 +EXEC msdb.dbo.sp_syspolicy_add_target_set_level @target_set_id=@target_set_id, @type_skeleton=N'Server/Database', @level_name=N'Database', @condition_name=N'Only User DB', @target_set_level_id=0 +GO + +Declare @policy_id int +EXEC msdb.dbo.sp_syspolicy_add_policy @name=N'Partition Scheme Name Pattern', @condition_name=N'Partition Scheme Name Pattern', @policy_category=N'Name_Pattern', @description=N'', @help_text=N'', @help_link=N'', @schedule_uid=N'00000000-0000-0000-0000-000000000000', @execution_mode=0, @is_enabled=False, @policy_id=@policy_id OUTPUT, @root_condition_name=N'', @object_set=N'Partition Scheme Name Pattern_ObjectSet' +Select @policy_id +GO + + + + + +SELECT P.policy_id, P.name, PC.name FROM dbo.syspolicy_policies P +INNER JOIN dbo.syspolicy_policy_categories PC + ON P.policy_category_id = PC.policy_category_id +WHERE PC.[name] = N'Name_Pattern'