sp_syspolicy_configure (Transact-SQL)
适用范围:SQL Server
配置基于策略的管理设置,例如,是否启用基于策略的管理。
语法
sp_syspolicy_configure
[ @name = ] N'name'
, [ @value = ] value
[ ; ]
参数
[ @name = ] N'name'
要配置的设置的名称。 @name是 sysname,是必需的,不能是NULL
空字符串。
@name 可以是以下任一值:
Enabled
- 确定是否启用了基于策略的管理。HistoryRetentionInDays
- 指定应保留策略评估历史记录的天数。 如果设置为0
,则不会自动删除历史记录。LogOnSuccess
- 指定基于策略的管理是否记录成功的策略评估。
[ @value = ] value
与@name的指定值关联的值。 @value是sql_variant,并且是必需的。
如果为 @name指定“已启用”,则可以使用以下任一值:
0
- 禁用基于策略的管理。1
- 启用基于策略的管理。
如果指定
HistoryRententionInDays
@name,请将天数指定为整数值。如果指定
LogOnSuccess
@name,则可以使用以下任一值:0
- 仅记录失败的策略评估。1
- 记录成功和失败的策略评估。
返回代码值
0
(成功)或 1
(失败)。
注解
必须在系统数据库的上下文msdb
中运行sp_syspolicy_configure
。
若要查看这些设置的当前值,请查询 msdb.dbo.syspolicy_configuration
系统视图。
权限
需要 PolicyAdministratorRole 固定数据库角色的成员身份。
重要
可能的凭据提升:PolicyAdministratorRole 角色中的用户可以创建服务器触发器和计划策略执行,这些触发器可能会影响数据库引擎实例的操作。 例如,PolicyAdministratorRole 角色中的用户可以创建一个策略,以防止在数据库引擎中创建大多数对象。 由于这种可能的凭据提升,PolicyAdministratorRole 角色应仅授予信任控制数据库引擎配置的用户。
示例
下面的示例启用基于策略的管理。
EXEC msdb.dbo.sp_syspolicy_configure
@name = N'Enabled',
@value = 1;
GO
下面的示例将策略评估保持期设置为 14 天。
EXEC msdb.dbo.sp_syspolicy_configure
@name = N'HistoryRetentionInDays',
@value = 14;
GO
下面的示例将基于策略的管理配置为成功和失败的策略评估均记录。
EXEC msdb.dbo.sp_syspolicy_configure
@name = N'LogOnSuccess',
@value = 1;
GO