sp_syspolicy_update_policy_category_subscription (Transact-SQL)

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

主题链接图标Transact-SQL 语法约定

语法

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

参数

  • [ @policy_category_subscription_id= ] policy_category_subscription_id
    您要更新的策略类别订阅的标识符。policy_category_subscription_id 的数据类型为 int 且是必需的。

  • [ @target_type= ] 'target_type'
    类别订阅的目标类型。target_type 的数据类型为 sysname,默认值为 NULL。

    如果您指定 target_type,则该值必须设置为“DATABASE”。

  • [ @target_object= ] 'target_object'
    将订阅策略类别的数据库的名称。target_object 的数据类型为 sysname,默认值为 NULL。

  • [ @policy_category= ] '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

权限

要求具有 PolicyAdministratorRole 固定数据库角色的成员身份。

安全说明安全说明

可能的凭据提升:具有 PolicyAdministratorRole 角色的用户可以创建服务器触发器并计划策略执行,这可能会影响数据库引擎实例的正常运行。例如,PolicyAdministratorRole 角色中的用户可以创建一个策略,它可能会禁止在数据库引擎中创建大多数对象。由于这种可能的凭据提升,只应将 PolicyAdministratorRole 角色授予可信任其控制数据库引擎配置的用户。

示例

下面的示例更新现有策略类别订阅,以便 AdventureWorks2008R2 数据库订阅“Finance”策略类别。

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

GO