sp_syspolicy_update_policy_category (Transact-SQL)

适用于:SQL Server

更新策略类别是否设置为托管数据库订阅。 如果托管订阅,则该策略类别将应用于所有数据库。

Transact-SQL 语法约定

语法

sp_syspolicy_update_policy_category
    { [ @name = ] N'name' | [ @policy_category_id = ] policy_category_id }
    [ , [ @mandate_database_subscriptions = ] mandate_database_subscriptions ]
[ ; ]

参数

[ @name = ] N'name'

策略类别的名称。 @name为 sysname,并且必须在@policy_category_id为 NULL 时指定。

[ @policy_category_id = ] policy_category_id

策略类别的标识符。 @policy_category_id为 int,如果@name为 NULL,则必须指定

[ @mandate_database_subscriptions = ] mandate_database_subscriptions

确定是否为策略类别而托管数据库订阅。 @mandate_database_subscriptions为值,默认值为 NULL. 您可以使用两个值中的一个:

  • 0 - 未授权
  • 1 -授权

返回代码值

0(成功)或 1(失败)。

注解

必须在系统数据库的上下文msdb中运行sp_syspolicy_update_policy_category

必须为@name@policy_category_id指定值。 两者都不能为 NULL。 若要获取这些值,请查询 msdb.dbo.syspolicy_policy_categories 系统视图。

权限

需要 Policy管理员istratorRole 固定数据库角色的成员身份。

重要

可能的凭据提升:Policy管理员istratorRole 角色中的用户可以创建服务器触发器并计划可能影响数据库引擎实例操作的策略执行。 例如,Policy管理员istratorRole 角色中的用户可以创建一个策略,以防止在数据库引擎中创建大多数对象。 由于这种可能的凭据提升,策略管理员istratorRole 角色应仅授予信任控制数据库引擎配置的用户。

示例

以下示例将 Finance 类别更新为授权数据库订阅。

EXEC msdb.dbo.sp_syspolicy_update_policy_category
    @name = N'Finance',
    @mandate_database_subscriptions = 1;
GO