sp_syspolicy_update_policy_category (Transact-SQL)
适用范围:SQL Server
更新策略类别是否设置为托管数据库订阅。 如果托管订阅,则该策略类别将应用于所有数据库。
语法
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,并且必须在@nameNULL
时指定。
[ @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
系统视图。
权限
需要 PolicyAdministratorRole 固定数据库角色的成员身份。
重要
可能的凭据提升:PolicyAdministratorRole 角色中的用户可以创建服务器触发器和计划策略执行,这些触发器可能会影响数据库引擎实例的操作。 例如,PolicyAdministratorRole 角色中的用户可以创建一个策略,以防止在数据库引擎中创建大多数对象。 由于这种可能的凭据提升,PolicyAdministratorRole 角色应仅授予信任控制数据库引擎配置的用户。
示例
以下示例将 Finance
类别更新为授权数据库订阅。
EXEC msdb.dbo.sp_syspolicy_update_policy_category
@name = N'Finance',
@mandate_database_subscriptions = 1;
GO