sp_syspolicy_configure (Transact-SQL)

适用于:SQL Server

配置基于策略的管理设置,例如,是否启用基于策略的管理。

Transact-SQL 语法约定

语法

sp_syspolicy_configure
    [ @name = ] N'name'
    , [ @value = ] value
[ ; ]

参数

[ @name = ] N'name'

要配置的设置的名称。 @namesysname,是必需的,不能为 NULL 或空字符串。

@name 可以是以下任何值:

  • Enabled - 确定是否启用基于策略的管理。

  • HistoryRetentionInDays - 指定策略评估历史记录应保留的天数。 如果设置为 0,则不会自动删除历史记录。

  • LogOnSuccess - 指定基于策略的管理是否记录成功的策略评估。

[ @value = ] value

@name的指定值关联的值。 @valuesql_variant,是必需的。

  • 如果为 @name指定“Enabled”,则可以使用以下值之一:

    • 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

后续步骤