最开始学习Oracle的时候,就学习的该数据库的用户,该用户的角色和权限问题。比如我建立了一个ORCL的数据库,该数据库边有sys和system两个拥有dba角色的用户。利用sqlplus登陆。 conn sys/密码 as sysdba 或者以操作员登陆 conn sys/密码 as sysoper。
然后理解角色和权限问题,角色包括了CONNECT、DBA、RESOURCE等角色,每个角色 包含多个权限。权限便又分为两种权限:1.系统权限 :描述用户对数据库的访问,建立存储过程等 2.对象权限: 用户对其用户的数据对象操作的权限,比如insert 、update、delete、create index等。
比如说:权限的维护。我们利用dba用户创建一个用户为james。当然james没有登陆我们ORCL数据库的角色(CONNECT),可以利用dba给james用户赋予connect角色,sql语句便是 grant connect to james。我们也可以收回james的角色 revoke connect from james。在我们新建的数据库ORCL的SCOTT用户有一张表emp。当然新建的james用户无法查看Scott的emp表。我们便可以用SCOTT用户对james授予select查看的权限。登陆SCOTT用户,利用sql 语句 grant select on emp to james。然后james登陆ORCL数据库后可以利用select语句查看SCOTT用户的emp表。select * from SCOTT.emp;
DBA用户对profile的操作。给james用户,创建profile文件,要求james登陆密码连续错3次就锁2天登陆。
1. 创建profile 。 create profile aaa(名) limit failed_login_attempts 3(错误次数) password_lock_ time 2;(天数)
2.将profile赋予给james 。 alter user james profile aaa;
由于james用户被锁定两天,但dba用户可以对james解锁。利用 alter user james account unlock;
利用DBA用户可以创建一个新用户。 create user user_name(用户名) identified by xxxxx(密码);
由于新建的user_name没有任何的权限。DBA可以为user_name授予系统或对象权限,grant 系统权限 to user_name; grant 对象权限 to user_name;
利用分页。
1.rownum 分页,显示rownum
select *,rownum rn from (select * from emp) a1;利用分页必须利用子查询。
比如说显示第6到第10条的记录则
select * from (select a1.*,rownum rn from (select * from emp) a1 where rownum<=10) where rn>=6;
再如,oracle数据库插入时间数据类型时候,默认的是日,月,年。我们可以利用alter session set nls_date_format='yyyy-mm-dd';更改日期的格式。