您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_audit

说明

允许系统安全员配置审计选项

语法


sp_audit <option>, <login_role_name>, <object_name> [,<setting>]

手动重新启动审计的语法是:


sp_audit restart

参数

<option>

是一个全局的、用户特定的、数据库特定的或对象特定的选项。


  { "adhoc" | "all" | "allow" | "alter" | "autotuning_rule" | "bcp" | "bind" | "cluster" | "cmdtext" 
  | "config_history" | "create" | "dbaccess" | "dbcc" | "delete" | "deny" | "disk" | "drop" | "dump" 
  | "dump_config" | "encryption_key" | "errors" | "errorlog" | "exec_procedure" | "exec_trigger" 
  | "func_obj_access" | "func_dbaccess" | "grant" | "insert" | "install" | "load" | "login" | "login_admin" 
  | "login_locked" | "logout" | "mount" | "password" | "quiesce" | "reference" | "remove" | "revoke" 
  | "role" | "role_locked" | "rpc" | "security" | "security_profile" | "select" | "setuser" | "sproc_auth" 
  | "table_access" | "thread_pool" | "transfer_table" | "truncate" | "unbind" | "unmount" 
  | "update" | "view_access" },
 

|选项|说明|

---- ----
all 审计所有操作。
allow 审计命令 allow。
alter 审计命令的执行:alter database、alter index、alter role、alter table、alter...modify owner(包括 alter encryption key modify owner)
bcp 审计 bcp in 实用程序的执行。
bind 审计命令的执行:sp_bindefault、sp_bindmsg、sp_bindrule
cluster 审计集群命令。
cmdtext 审计用户输入的 SQL 文本。为安全起见,可用星号组成的固定长度字符串替换系统存储过程和命令口令参数。
config_history 审计配置历史记录。
create 审计创建命令:create database、create default、create function、create index、create procedure、create role、create rule、create service、create table、create trigger、create view
dbaccess 审计另一个数据库对该数据库的访问。
dbcc 审计所有 dbcc 命令的执行。
delete 审计从表或视图中删除行。
deny 审计 deny 命令。
disk 审计这些命令的执行:disk init, disk mirror, disk refit, disk reinit, disk remirror, disk resize, disk unmirror
drop 审计命令的执行:drop database, drop default, drop function, drop index, drop procedure, drop role, drop rule, drop service, drop table, drop trigger, drop view, sp_dropmessage
dump 审计命令的执行:dump database、dump database...cumulative、dump transaction
dump_config 审计 dump configuration to 命令的执行。
encryption_key 审计命令的执行:alter encryption key, create encryption key, drop encryption key, sp_encryption
errors 审计致命错误和非致命错误。
errorlog 审计对错误日志的更改。
exec_procedure 审计存储过程的执行。
exec_trigger 审计任何引发触发器的命令。
func_dbaccess 使用内置函数审计对数据库的访问。请参见Event 和 extrainfo 列中的值
func_obj_access 使用内置函数审计对对象的访问。请参见Event 和 extrainfo 列中的值
grant 审计 grant 和 grant role 命令的执行。
insert 审计使用 insert 命令向表或视图中插入行。
install 使用 installjava 命令审计 Java 类的安装。
load load database,审计命令的执行:load database..cumulativeload transaction
login 为所有登录名或角色、特定登录名或特定角色(系统定义和用户定义的角色)审计对服务器登录尝试的执行。
login_admin 由登录管理员审计 alter login、create login、drop login 命令的执行。
login_locked 当登录帐户由于失败登录尝试次数超出配置次数而被锁定时,将审计主机名和网络 IP 地址。
logout 审计 SAP ASE 服务器中的任何注销。
mount 审计 mount database 命令的执行。
password 审计全局口令和登录策略选项的事件。
quiesce 审计 quiesce database、prepare database 命令的执行。
reference 使用 create table 或 alter table 命令审计表之间的参考。
remove 审计 Java 类的删除。
revoke 审计 revoke、revoke role 命令的执行。
role 审计 alter role、create role、drop role、grant role、revoke role、set role 命令的的执行。
role_locked 审计 alter role..lock 命令。
rpc 审计远程过程调用(内部或外部)
security 对全服务器范围内的与安全性相关的事件进行审计。请参见Event 和 extrainfo 列中的值
security_profile 审计 alter login profile、create login profile、drop login profile 命令。
select 审计表或视图的 select 命令的执行。
setuser 审计 setuser 命令的执行。
sproc_auth 审计系统存储过程内部执行的授权检查
table_access 审计特定用户使用 select、delete、update 或 insert 命令访问任何表。
thread_pool 审计 alter thread pool、create thread pool、drop thread pool 命令的执行。
transfer_table 审计 transfer table 命令的执行。
truncate 审计 truncate table 命令的执行。
unbind 审计 sp_unbindefault、sp_unbindrule、 sp_unbindmsg 命令的执行。
unmount 审计 unmount database 命令的执行。
update 审计对表和视图中行的更新。
view_access 审计特定用户使用 select、delete、insert 或 update 命令访问任何视图。

<login_role_name>

确定要审计的登录名或角色。


{ "all" | <login_name> | <role_name> },

all

所有角色和登录名。

<login_name>

当第一个参数 <option> 为 all 时,要审计的登录名。将全局选项 login 用作 <option> 的第一个参数,可审计指定登录名的登录尝试。

<role_name>

当第一个参数 <option> 为 all 时,为特定角色(系统和用户定义角色)授予的登录名。将全局选项 login 用于 <option> 时,可审计为角色授予的登录名的登录尝试。

<object_name>

待审计的有效对象。


{ "all" | "default table" | "default view" | "default procedure" | "default trigger"  | <object_name> } 

all

所有有效对象。

default table

在为

default view

在为 <option> 指定 delete、insert、select 或 update 作为第一个参数时,其为有效值。

default procedure

在为 <option> 指定 exec_procedure 作为第一个参数时,其为有效值。

default trigger

在为 <option> 指定 exec_trigger 作为第一个参数时,其为有效值。

<object_name>

是要审计的特定对象的名称。有效值取决于为全局选项指定的值。

可指定对象名称并包括所有者的名称(如果您不是该对象的所有者)。例如,如果要审计 Joe 拥有的名为 inventory 的表,则需要为 指定 joe.inventory。

<setting>

确定审计事件的设置。该服务生成受此选项控制的事件的审计记录,而不管该事件是否通过权限检查。


[, "off" | "on" | "pass" | "fail" ]

off

停用对指定选项的审计。

on

激活对指定选项的审计。

pass

激活通过权限检查的事件的审计。

fail

激活未通过权限检查的事件的审计。

restart

如果审计进程因出现错误而强制终止,则可通过使用 restart 选项手动重新启动审计:

如果当前没有运行任何审计,但该审计进程被配置为通过输入 sp_configure “auditing” 1 来运行,则可重新启动该审计进程。

示例

示例 1

当登录帐户由于失败登录尝试次数超出配置次数而被锁定时,将 login_locked 审计选项设置为启动对主机名和网络 IP 地址的审计:


sp_audit "login_locked","all","all","on"

如果审计表满了,不能记录事件,会向错误日志发送包含相关信息的消息。

监控 Locked Login 事件(112)的审计日志有助于确定对登录帐户的攻击。

示例 2

启动对 SSL 安全性相关事件的审计。成功和失败的事件都将进行审计:


sp_audit "security", "all", "all", "on"

sample records added:

查看 sybsecurity 中的事件:


select * from sybsecurity..sysaudits_01 where event=99

示例 3

显示 security 审计选项的设置:


sp_audit "security", "all", "all"

示例 4

启动对 master 数据库中对象创建(包括 create database)的审计。


sp_audit "create", "all", master, "on"

示例 5

审计 pubs2 数据库中的命令:


sp_audit "encryption_key", "all", pubs2, "on" 

示例 6

启动对 db1 数据库中所有对象创建的审计:


sp_audit "create", "all", db1, "on"

示例 7

启动对系统管理员所有失败执行的审计。


sp_audit "all", "sa_role", "all", "fail"

示例 8

启动对当前数据库中新表的所有更新的审计。例如,如果当前数据库是 utility,则将审计 utility 中创建的所有新表是否发生更新。对现有表的审计不受影响。


sp_audit "update", "all", "default table", "on"

示例 9

启动对为 titles 表输入的所有 transfer table 命令的审计:


use pubs2
sp_audit "transfer_table", "all", titles, "on"

示例 10

启动对 deny 命令的审计:


sp_audit "deny", "all", "master", "on"

示例 11

对使用任何数据库卸载或创建清单文件的所有尝试进行审计:


sp_audit "unmount", "all", "all", "on" 

示例 12

启用对 master 数据库中成功和失败的对象创建操作的审计:


sp_audit "alter", "all", "master", "on" 

示例 13

此示例启用对 master 数据库中成功角色变更的审计:


sp_audit "alter", "all", "master", "pass"

示例 14

此示例禁用对 master 数据库中删除角色的审计:


sp_audit "drop", "all", "master", "off"

示例 15

此示例禁用对 master 数据库中授予角色和权限的审计:


sp_audit "grant", "all", "master", "off"

使用 grant 或 role 审计选项执行审计,生成事件 85 审计记录。

示例 16

此示例对撤销角色启用审计:


sp_audit "revoke", "all", "master", "on"

使用 revoke 或 role 审计选项执行审计,生成事件 85 审计记录。

示例 17

本示例显示了如何对 company_operations 数据库中 projects 表和该数据库中所有新表上的所有失败删除进行审计。可对 projects 表使用特定于对象的 delete 选项, 对数据库中的所有未来表使用 default table 。在执行 sp_audit 以设置特定于对象的审计选项之前,您必须处于对象的数据库中:


use company_operations
go
sp_audit "delete", "all", "projects", "fail"
go
sp_audit "delete", "all", "default table", "fail"
go

示例 18

此示例审计通过登录 "tonyb" 执行的所有表访问:


sp_audit "table_access", "tonyb", "all", "on"

示例 19

此示例审计过程 sp_addlogin:


use sybsystemprocs
go

sp_audit "exec_procedure", "all", "sp_addlogin", "on"
go

示例 20

使用角色doc_role 和 nurse_role 启动对登录名的所有登录尝试。


sp_audit "login", "doc_role", "all", "on"

sp_audit "login", "nurse_role", "all", "on"

示例 21

使用角色 doc_role 启动对所有登录名的审计。


sp_audit "all", "doc_role", "all", "on"

用法

sp_audit 确定当启用审计时将审计的内容。在您使用 sp_configure 将 auditing 参数设置为 on 之前,不会发生任何实际的审计。设置之后,使用 sp_audit 配置的所有审计选项生效。有关详细信息,请参见 sp_configure。

如果您不是所指定对象的所有者,请用所有者的名称对 参数值进行限定,格式如下:

"<ownername>.<objname>"

您不能在 tempdb 数据库中激活以下选项的缺省审计:

  • delete

  • exec_procedure

  • exec_trigger

  • insert

  • select

  • update

    用于控制审计的配置参数有:

  • auditing – 启用或禁用对服务器的审计。

  • audit queue size – 确定审计队列的大小。

  • current audit table – 设置当前审计表。SAP ASE 服务器将所有审计记录写入该表。

  • suspend auditing when full – 在审计设备已满时控制审计进程的行为。

    所有审计配置参数都是动态的,将立即生效。

    如果未指定 forth 参数的值,则 SAP ASE 将显示选项的当前审计设置。如果对某个选项指定 pass,稍后又对同一个选项指定 fail(或相反),则结果与指定 on 相同。不管事件是否通过权限检查,SAP ASE 服务器都将生成审计记录。

  • on 或 off – 适用于所有审计选项

  • pass 和 fail – 适用于除 cmdtext、errors 和 adhoc 外的所有选项。对于这些选项,只有 on 或 off 适用。所有选项的初始、缺省值都是 off。如果将 cmdtext 选项选择为 pass 或 fail,则 SAP ASE 服务器将使用 on 来替换该值。