sp_syspolicy_update_policy_category_subscription (Transact-SQL)

适用于:SQL Server

更新指定数据库的策略类别订阅。

Transact-SQL 语法约定

语法

sp_syspolicy_update_policy_category_subscription
    [ @policy_category_subscription_id = ] policy_category_subscription_id
    [ , [ @target_type = ] N'target_type' ]
    [ , [ @target_object = ] N'target_object' ]
      , [ @policy_category = ] N'policy_category'
[ ; ]

参数

[ @policy_category_subscription_id = ] policy_category_subscription_id

要更新的策略类别订阅的标识符。 @policy_category_subscription_idint,并且是必需的。

[ @target_type = ] N'target_type'

类别订阅的目标类型。 @target_type为 sysname,默认值为 NULL.

如果指定 @target_type,则必须将该值设置为 DATABASE

[ @target_object = ] N'target_object'

将订阅策略类别的数据库的名称。 @target_object为 sysname,默认值为 NULL.

[ @policy_category = ] N'policy_category'

希望数据库订阅的策略类别的名称。 @policy_category为 sysname,默认值为 NULL.

返回代码值

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

注解

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

若要获取@policy_category_subscription_id@policy_category的值,可以使用以下查询:

SELECT a.policy_category_subscription_id,
    a.target_type,
    a.target_object,
    b.name AS policy_category
FROM msdb.dbo.syspolicy_policy_category_subscriptions AS a
INNER JOIN msdb.dbo.syspolicy_policy_categories AS b
    ON a.policy_category_id = b.policy_category_id;

权限

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

重要

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

示例

以下示例更新现有策略类别订阅,以便 AdventureWorks2022 数据库订阅 Finance 策略类别。

EXEC msdb.dbo.sp_syspolicy_update_policy_category_subscription
    @policy_category_subscription_id = 1,
    @target_object = 'AdventureWorks2022',
    @policy_category = 'Finance';
GO