select * from v$version; selectversionfrom v$instance; selectversionFROM Product_component_version WhereSUBSTR(PRODUCT,1,6)='Oracle';
身份鉴别
密码策略
Oracle默认提供了一个密码策略的sql执行文件utlpwdmg.sql
Linux $ORACLE_HOME/rdbms/admin/utlpwdmg.sql #默认位置
Windows windows路径位置可以通过搜索来获得。 C:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN #默认位置
查看用户状态及profile文件
1 2 3 4 5
select username,account_status,profile from dba_users; # 只查看激活的用户 select username,profile from dba_users where account_status='OPEN'; # 查看未锁定账户 select username,profile from dba_users where account_status notlike'%LOCKED%';
profile设置
1 2 3 4
#只查看默认profile select resource_name,limitfrom dba_profiles where profile='DEFAULT'; select resource_name,limitfrom dba_profiles where resource_type='PASSWORD'; select resource_name,limitfrom dba_profiles where resource_type='PASSWORD'and profile='DEFAULT';
# 查看当前用户的缺省表空间 select username,default_tablespace from user_users; select * from V$PWFILE_USERS; # 查看哪些账户拥有DBA权限 select grantee,granted_role from dba_role_privs where granted_role='DBA'; # 查看某个账户的权限 select grantee,granted_role from dba_role_privs where grantee='username';
账户状态
1 2
# 查看未锁定账户 select username,account_status from dba_users where account_status notlike'%LOCKED';
账户状态
说明
OPEN
正常账户
EXPIRED
账户过期
EXPIRED(GRACE)
账户在口令过期后的有效期内,仍可登录,但需及时修改口令
LOCKED(TIMED)
因口令输入错误过多而锁定账户,具体错误次数由FAILED_LOGIN_ATTEMPTS设置
LOCKED
账户已锁定
EXPIRED & LOCKED(TIMED)
账户已过期且口令输入错误过多而锁定
EXPIRED(GRACE) & LOCKED(TIMED)
账户在口令过期后的有效期内,同时因口令输入错误次数过多而锁定
EXPIRED & LOCKED
账户已过期且已锁定
EXPIRED(GRACE) & LOCKED
账户在口令过期后的有效期内同时已被DBA手工锁定
强制访问控制
使用catols.sql脚本创建Oracle Label Security
1 2 3 4 5 6 7 8
# 安装脚本 @?/rdbms/admin/catols.sql # 安装后会关闭数据库实例,需要手动启动 startup # 确认脚本创建的数据库对象均有效 select object_type,object_name from dba_objects where owner='LBACSYS'andstatus='INVALID'; # 探查LBACSYS用户中涉及到的数据库对象信息 select object_type,count(*) from dba_objects where owner='LBACSYS'groupby object_type;
查看Oracle Label Security设置
1 2 3 4 5 6 7 8 9 10
# 查看是否存在LBACSYS用户 select username from dba_users where username like'LBACSYS'; # 查看是否创建了策略 select policy_name,statusfrom dba_sa_policies; # 查看是否创建了级别 select * from dba_sa_levels orderby level_num; # 查看标签创建情况 select * from dba_sa_labels; # 查看策略与模式、表的对应关系 select * from dba_sa_tables_policies;
#查看日志 show parameter audit; # 日志存存储类型,若为os,则保存在系统中,windows系统在事件查看器中。 show parameter audit_trail; # 是否启用对以sysdba或sysoper角色登录的用户进行审计 show parameter audit_sys_operations;
# 审计所有成功的对emp表中的操作类型,并且每个会话中相同语句只记录一次 audit all on scott.emp by session whenever successful; # 审计所有对emp表中失败的操作 audit all on scott.emp by access whenever not successful; # 不审计对emp表所有失败的操作 noaudit all on scott.emp whenever not successful; # 关闭对emp表的审计 noaudit all on scott.emp; # 仅审计对emp表成功和失败的查询操作 audit selecton scott.emp byaccess;
查看日志记录字段
1
desc aud$
其他
1 2 3 4 5 6
# 日志文件路径 select * from v$logfile;
# 查看最近所作的操作 select * from v$sql; select * from v$sqlarea;