sp_syspolicy_configure (Transact-SQL)

适用范围:SQL Server

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

Transact-SQL 语法约定

语法

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