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 = ] '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_typesysname,默认值为 NULL。

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

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

[ @policy_category = ] 'policy_category' 希望数据库订阅的策略类别的名称。 policy_categorysysname,默认值为 NULL。

返回代码值

0 (成功) 或 1 (失败)

备注

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

若要获取 policy_category_subscription_idpolicy_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 角色应仅授予有权控制数据库引擎配置的用户。

示例

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

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

另请参阅

基于策略的管理存储过程 (Transact-SQL)
sp_syspolicy_add_policy_category_subscription (Transact-SQL)
sp_syspolicy_delete_policy_category_subscription (Transact-SQL)