请问如何安装审计数据库?

grantsql 2004-05-14 03:19:03
加精
如题
...全文
789 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hobbylu 2004-05-14
  • 打赏
  • 举报
回复
步骤:
1、安装审计(创建审计设备)

disk init name = "auditdev",
physname = "d:\Sybase\example\sybaud.dat",
vdevno = 8, size = 5120

disk init name = "auditlogdev",
physname = "d:\Sybase\example\syblg.dat",
vdevno = 9, size = 1024
2、 安装审计(创建审计数据库)
create database sybsecurity on auditdev
log on auditlogdev
3、 安装审计(运行安装脚本)
c:\> isql -Usa -Ppassword -Sserver_name -iinstsecu
4、 安装审计(重新启动Sybase Adaptive Server)
安装审计后,直到系统管理员或安全管理员通过审计系统过程启用了审计时,才会进行审计。
5、 安装审计(在sybsecurity中创建多个sysaudits表)
disk init name = "auditdev3",
physname = "d:\sybase\example\auditdevw3.dat",
vdevno = 11, size = 5120

alter database sybsecurity on auditdev3 = 2

use sybsecurity

sp_addaudittable auditdev3
(注:为每个sybaudit表重复上述步骤)
6、 设置阈值过程
启用审计之前,建立一个阈值过程,以在当前表时切换审计表。
create proc audit_thresh
as
declare @audit_table_number int
/*
** Select the value of the current audit table
*/
select @audit_table_number = value
from master.dbo.sysconfigures
where name = "current audit table"
/*
** Set the next audit table to be current.
** When the next audit table is specified as 0,
** the value is automatically set to the next one.
*/
exec sp_configure "current audit table", 0, "with truncate"
/*
** Copy the audit records from the audit table
** that became full into another table.
*/
if @audit_table_number = 1
begin
insert aud_db.dbo.audit_data
select * from sysaudits_01
truncate table sysaudits_01
end
else if @audit_table_number = 2
begin
insert aud_db.dbo.audit_data
select * from sysaudits_02
truncate table sysaudits_02
end
else if @audit_table_number = 3
begin
insert aud_db.dbo.audit_data
select * from sysaudits_03
truncate table sysaudits_03
end
return(0)
7、 将阈值过程添加到每个审计段
use sybsecurity
go
sp_addthreshold sybsecurity, aud_seg_01, 250,
audit_thresh
sp_addthreshold sybsecurity, aud_seg_02, 250,
audit_thresh
sp_addthreshold sybsecurity, aud_seg_03, 250,
audit_thresh
go
到此,启用审计后,Adaptive Server将所有审计数据写入最初的当前审计表sysaudits_01中。
Sysaudits_01中还有250页便会充满时,阈值过程audit_thresh触发。此过程切换当前审计表
为sysaudits_02,并且Adaptive Server立即开始将新的审计纪录写入sysaudits_02,此过程还将
sysaudit_01中的所有审计数据复制到audit_db数据库中。

8、 设置审计配置参数
一个审计记录需要的内存大小为424字节,审计队列的的缺省大小为100条记录
sp_onfigure "audit queue size", 300
sp_configure "suspend audit when device full",[0|1]

9、 启用和禁止审计
sp_configure "auditing",[0|1]
1 启用审计 0 禁用审计

10、设置全局审计选项
sp_audit option , login_name , object_name [,setting]

审计选项
全局选项:应用于影响整个服务器的命令,例如启动服务器、磁盘操作和允许用户定义即席审计记录的命令。
设置存储在sysbsecurity..sysauditoption系统表中。
数据库选项:应用于数据库,例如更改数据库、批量复制数据、授予或撤销对数据库中对的访问权以及在数据
库中创建对象。数据库特定的事件的审计选项设置存储在master..sysdatabases中。
对象权限:如选择、插入、更新或删除特定表或视图的以及执行触发器或过程。对象特定事件的选项设置在
相应数据库的sysobjects系统表中。
用户选项:应用于特定用户或系统角色,例如特定用户对任何表或视图的访问。单个用户的选项设置存储在
master..syslogins中。系统角色的设置存储在master..sysauditoptions中。
练习:
(1) sp_audit "adhoc", "all", "all", "on"
说明:启用用户定义的即席审计记录
(2) sp_audit "all","sa_role","all","on"
说明:为所有已激活了sa_role角色的操作打开审计
(3) sp_audit @option = "alter", @login_name = "all",
@object_name = "master", @setting = "on"
说明:为master数据库中执行的所有alter database和alter table打开审计
(4) sp_audit "bcp", "all", "aca_db"
说明:返回aca_db数据库中bcp审计的状态
(5) sp_audit "create", "all", "aca_db", "pass"
说明:关闭对aca_db数据库中成功的对象创建的审计
(6) sp_audit "disk","all","all","on"
说明:审计服务器所有的磁盘操作
(7) sp_audit "dump","all","aca_db","on"
说明:审计aca_db数据库的转储命令
(8) sp_audit "update", "all", "auths", "on"
说明:对用户更新当前数据库中auths表的所有尝试进行审计
(9) sp_audit "table_access", "smithson", "all", "on"
说明:审计由登录名为“smithson”执行的。对表的所有访问
(10) sp_audit "dbcc", "all", "all", "on"
审计dbcc命令的所有执行情况。

10、 查询审计跟踪
了解审计表:
列名 数据类型 说明
Event Smallint 正被审计的事件的类型
Eventmod Smallint 关于正被审计的事件的详细信息
0=事件无修改者
1=事件通过了权限检查
2=事件未通过权限检查
Spid Smallint 引起写入审计记录的进程的ID
Eventtime Datetime 审计事件发生的日期和时间
Sequence Smallint 单个事件中记录的序列号。
suid Smallint 执行审计事件的用户的服务器登录id
Objid Int null 被访问的对象、存储过程或触发器的id
Xactid Binary(6)null 包含被审计事件的事务的id。
Loginname Varchar(30)null 与suid相应的登录名
Dbname Varchar(30)null 与dbid相应的数据库名
Objname Varchar(30)null 与objid相应的对象名
Objowner Varchar(30)null Objid的所有者名
Extminfo Varchar(255)null 有关被审计的其它信息。


查询审计跟踪示例
1) 假设审计数据位于audit_db数据库中名为audit_data的表中。
要选择由“bob”于1999年7月5日所执行的审计记录
use audit_db
go
select * from audit_data
where loginname = "bob"
and eventtime like "Jul 5% 93"
go
2) 下面的命令请求aca_db数据库中由具有sso_role角色的用户所执行命令的审计记录
select * from audit_data
where extrainfo like "%sso_role%
and dbname = "pubs2"
go
3) 下面的命令请求所有表截断(事件64)的审计记录
select *from audit_data where event=64
go

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧