允许系统安全员配置审计选项
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 的表,则需要为
<setting>
确定审计事件的设置。该服务生成受此选项控制的事件的审计记录,而不管该事件是否通过权限检查。
[, "off" | "on" | "pass" | "fail" ]
off
停用对指定选项的审计。
on
激活对指定选项的审计。
pass
激活通过权限检查的事件的审计。
fail
激活未通过权限检查的事件的审计。
restart
如果审计进程因出现错误而强制终止,则可通过使用 restart 选项手动重新启动审计:
如果当前没有运行任何审计,但该审计进程被配置为通过输入 sp_configure “auditing” 1 来运行,则可重新启动该审计进程。
当登录帐户由于失败登录尝试次数超出配置次数而被锁定时,将 login_locked 审计选项设置为启动对主机名和网络 IP 地址的审计:
sp_audit "login_locked","all","all","on"
如果审计表满了,不能记录事件,会向错误日志发送包含相关信息的消息。
监控 Locked Login 事件(112)的审计日志有助于确定对登录帐户的攻击。
启动对 SSL 安全性相关事件的审计。成功和失败的事件都将进行审计:
sp_audit "security", "all", "all", "on"
sample records added:
查看 sybsecurity 中的事件:
select * from sybsecurity..sysaudits_01 where event=99
显示 security 审计选项的设置:
sp_audit "security", "all", "all"
启动对 master 数据库中对象创建(包括 create database)的审计。
sp_audit "create", "all", master, "on"
审计 pubs2 数据库中的命令:
sp_audit "encryption_key", "all", pubs2, "on"
启动对 db1 数据库中所有对象创建的审计:
sp_audit "create", "all", db1, "on"
启动对系统管理员所有失败执行的审计。
sp_audit "all", "sa_role", "all", "fail"
启动对当前数据库中新表的所有更新的审计。例如,如果当前数据库是 utility,则将审计 utility 中创建的所有新表是否发生更新。对现有表的审计不受影响。
sp_audit "update", "all", "default table", "on"
启动对为 titles 表输入的所有 transfer table 命令的审计:
use pubs2
sp_audit "transfer_table", "all", titles, "on"
启动对 deny 命令的审计:
sp_audit "deny", "all", "master", "on"
对使用任何数据库卸载或创建清单文件的所有尝试进行审计:
sp_audit "unmount", "all", "all", "on"
启用对 master 数据库中成功和失败的对象创建操作的审计:
sp_audit "alter", "all", "master", "on"
此示例启用对 master 数据库中成功角色变更的审计:
sp_audit "alter", "all", "master", "pass"
此示例禁用对 master 数据库中删除角色的审计:
sp_audit "drop", "all", "master", "off"
此示例禁用对 master 数据库中授予角色和权限的审计:
sp_audit "grant", "all", "master", "off"
使用 grant 或 role 审计选项执行审计,生成事件 85 审计记录。
此示例对撤销角色启用审计:
sp_audit "revoke", "all", "master", "on"
使用 revoke 或 role 审计选项执行审计,生成事件 85 审计记录。
本示例显示了如何对 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
此示例审计通过登录 "tonyb" 执行的所有表访问:
sp_audit "table_access", "tonyb", "all", "on"
此示例审计过程 sp_addlogin:
use sybsystemprocs
go
sp_audit "exec_procedure", "all", "sp_addlogin", "on"
go
使用角色doc_role 和 nurse_role 启动对登录名的所有登录尝试。
sp_audit "login", "doc_role", "all", "on"
sp_audit "login", "nurse_role", "all", "on"
使用角色 doc_role 启动对所有登录名的审计。
sp_audit "all", "doc_role", "all", "on"
sp_audit 确定当启用审计时将审计的内容。在您使用 sp_configure 将 auditing 参数设置为 on 之前,不会发生任何实际的审计。设置之后,使用 sp_audit 配置的所有审计选项生效。有关详细信息,请参见 sp_configure。
如果您不是所指定对象的所有者,请用所有者的名称对
"<ownername>.<objname>"
您不能在 tempdb 数据库中激活以下选项的缺省审计:
用于控制审计的配置参数有:
所有审计配置参数都是动态的,将立即生效。
如果未指定 forth 参数的值,则 SAP ASE 将显示选项的当前审计设置。如果对某个选项指定 pass,稍后又对同一个选项指定 fail(或相反),则结果与指定 on 相同。不管事件是否通过权限检查,SAP ASE 服务器都将生成审计记录。