sp_syspolicy_add_policy_category (Transact-SQL)
添加可用于基于策略的管理的策略类别。策略类别可帮助您对策略进行组织以及设置策略作用域。
语法
sp_syspolicy_add_policy_category [ @name = ] 'name'
[ , [ @mandate_database_subscriptions = ] mandate_database_subscriptions ]
, [ @policy_category_id = ] policy_category_id OUTPUT
参数
[ @name= ] 'name'
策略类别的名称。name 的数据类型为 sysname 且为必需的。name 不能为 NULL 或空字符。[ @mandate_database_subscriptions = ] mandate_database_subscriptions
确定是否为策略类别而托管数据库订阅。mandate_database_subscriptions 为一个 bit 值,默认值为 1(启用)。[ @policy_category_id= ] policy_category_id
策略类别的标识符。policy_category_id 的数据类型为 int 并作为 OUTPUT 返回。
返回代码值
0(成功)或 1(失败)
注释
您必须在 msdb 系统数据库的上下文中运行 sp_syspolicy_add_policy_category。
权限
要求具有 PolicyAdministratorRole 固定数据库角色的成员身份。
安全说明 |
---|
可能的凭据提升:具有 PolicyAdministratorRole 角色的用户可以创建服务器触发器并计划策略执行,这可能会影响数据库引擎实例的正常运行。例如,PolicyAdministratorRole 角色中的用户可以创建一个策略,它可能会禁止在数据库引擎中创建大多数对象。由于这种可能的凭据提升,只应将 PolicyAdministratorRole 角色授予可信任其控制数据库引擎配置的用户。 |
示例
下面的示例创建一个策略类别,在其中对该类别的订阅不托管。这意味着可以对单独的数据库进行配置,以便在类别中选择加入或不加入策略。
DECLARE @policy_category_id int;
EXEC msdb.dbo.sp_syspolicy_add_policy_category
@name = N'Table Naming Policies'
, @mandate_database_subscriptions = 0
, @policy_category_id = @policy_category_id OUTPUT;
GO