oracle如何记录用户的登陆信息
oracle如何记录用户的登陆信息
可以做一个触发器
用以下的方式可以监控登入登出的用戶:
创建一张记录登录TABLE,如下:
CREATE TABLE SYSTEM.LOGIN_LOG
(
SESSION_ID NUMBER(8,0) NOT NULL,
LOGIN_ON_TIME DATE,
LOGIN_OFF_TIME DATE,
USER_IN_DB VARCHAR2(50),
MACHINE VARCHAR2(50),
IP_ADDRESS VARCHAR2(20),
RUN_PROGRAM VARCHAR2(50)
)
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE SYSTEM
STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
/
COMMENT ON TABLE SYSTEM.LOGIN_LOG IS '登录日志'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.SESSION_ID IS 'sessionid'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.LOGIN_ON_TIME IS '登录时间'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.LOGIN_OFF_TIME IS '登出时间'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.USER_IN_DB IS '登录的DB User'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.MACHINE IS '机器名'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.IP_ADDRESS IS 'IP地址'
/
COMMENT ON COLUMN SYSTEM.LOGIN_LOG.RUN_PROGRAM IS '接入程序'
/
再创建
相关文档:
检测锁:
SELECT A.OWNER,
A.OBJECT_NAME,
B.XIDUSN,
B.XIDSLOT,
B.XIDSQN,
B.SESSION_ID,
B.ORACLE_USERNAME,
B.OS_USER_NAME,
B.PROCESS,
B.LOCKED_MODE,
C.MACHINE,
C.STATUS,
C.SERVER,
C.SID,
C.SERIAL#,
C.PROGRAM
from ALL_OBJECTS A,
V$LOCKED_OBJECT B,
SYS.GV_$SESSION C
WHERE ( A.OBJE ......
触发器是指存放在数据库中,并被隐藏执行的存储过程。在Oracle8i之前,只允许基于表或视图的DML操作(insert,update,delete)建立触发器,在oracle8i之后,不仅支持DML操作,也允许基于系统事件(启动数据库,关闭数据库,登录)和DDL操作建立触发器。
一、触发器简介
触发器是指隐含执行的存储过程,它可以使 ......
查看所有表空间使用情况
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE ......
1,列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数。
select job,count(empno) from emp
where job in(select job from emp group by job having min(sal)>1500)
group by job;
2,列出薪金高于公司平均薪金的所有员工所在部门,上级领导,公司的工资等级。
select e.ename,d.dname,m.ename,e.sal,sa. ......
1. 查看数据的字符集
sqlplus> col parameter format a30
sqlplus> col value format a30
sqlplus> select * from nls_database_parameter
PARAMETER VALUE
------------------------------ --------------------
...
NLS_CH ......