oracle学习第一部分
1.oracle简介
1.1 目前常用数据库分类
小型数据库:sql server,access(微软的)
中型数据库:mysql(瑞典公司的),sybase(美国sybase公司)
大型数据库:informix(IBM),oracle(甲骨文公司),db2(IBM)
1.2 oracle数据库介绍
oracle数据库是由美国甲骨文公司的产品,公司从1970年起开始开发数据库,目前数据库已经发展到oracle 11G,比较流行的是oracle 9i和oracle 10g,oracle单词的意思是神喻,代神说话的人,甲骨文
1.3 oracle数据库资质认证
a. oca oracle低级认证
b. ocp oracle中级认证
c. ocm oracle高级认证(很难考,报名费很贵,2000美金左右,中国大陆还不一定有考区)
2. oracle数据库的安装
2. 默认用户
oracle数据库安装以后,会默认有三个用户
dba用户:数据库管理员,拥有数据库最高权限,其可以create database权限,也可以称为超级用户,sysdba角色,用户密码分别如下:
sys/change_on_install
sysoper用户:数据库用户管理员,权限也很大,但是没有create database的权限,用户密码分别如下:
system/manager
scott用户:普通用户,oracle会给其默认产生一些数据对象,用户密码分别是:
scott/tiger
注:一般的,对数据库的维护和操作,使用system用户就可以了
3.oracle数据的启动
a.启动数据库实例
b.启动数据库监听
4.连接数据库
a.sqlplus可以连接
b.PL/SQL可以连接
...
5.常用命令
a.常用系统命令:
(1)显示当前用户:show user;
(2)连接数据库: conn(connect) 用户名/密码;
(3)修改密码:passw(password) 用户名;
(4) 查看当前用户下面有哪些表:
select table_name from user_tables;
(5)设置环境变量
设置行宽:set pagesize = 120;
设置页面大小:set pagesize = 8;//一页显示8条数据,包括最后一个空白行
b.文件交互命令
(1) 交互式命令:&
可以替代变量,而该变量在执行时,需要用户输入
select * from emp where job=‘&job’;
(2)执行脚本命令:start 或者@
@ D:\my.sql;
start d:\my.sql;
(3)修改sql脚本命令:edit
edit D:\my.sql; //打开脚本文件,然后用户就可以修改了
(4)重定向: spool,将命令行的输出重定向输出到文件中,需要两步操作
spool filename;//创建新文件filename
spool off; //输出到文件中
c.操作用户语句
(1) oracle用户创建:只有sys或者system用户有权限创建用户
create user liudh identified by m123; //创建用户liudh,密码为m123,注意:oracle数据库中密码必须以字母开头
(2)修改密码
password 用户名;
(3) 删除用户,一般是级联删除
drop user 用户名 cascade;
d.授权操作,数据库管理员才有的权限,新建用户默认表空间是system空间
(1)grant connect to liudh;//给用户liudh授予connect角色的权限,connect是一个角色,这个角色有一些7种权限,比如连接数据库等
(2)查看表结构
desc tablename;
(3)授权访问其他用户的表权限
grant select on emp to liudh;//emp表是scott用户的,执行该操作以后,liudh用户就可以查询(select)scott用户下的表emp
grant update on emp to liudh;
使用all可以授予多个对象权限,包括的对象权限有:select,update,delete,create
grant all on emp to liudhu;
(4) 操作其他用户的表,要带上用户名
liudh用户想要查询scott用户的emp表,在授予权限的情况下,可通过如下语句来实现:
select * from scott.emp;
(5)权限资源回收:invoke
revoke select on emp from liudh;//scott用户取消liudhy用户对自己的表emp的select对象权限
注意:权限的回收是级联的
scott 将select 表emp的权限传递授予liudh,liudh将对scott表emp的select对象权限授予zhangxy,当scott回收liudh该权限时,zhangxy的权限也被收回了
,即权限的收回是级联的
(6)权限的传递,权限的维护 使用with grant option 和 with admin option
scott用户把对自己的表emp的select对象权限授予liudh,同时也希望liudh用户把对emp表的select对象权限授予其他人,比如zhangxy,语句如下
对象权限的传递:
grant select on emp to liudh with grant option;
系统权限的传递:
grant connect to liudh with admin option;//数据库管理员将connect系统权限授予liudh,而后liudh就可以将connect系统权限授予其他普通用户
6.oracle用户管理
oracle安装默认会产生三个用户,也会产生一个数据库实例,该实例下面可以增加其他用户,然后用户就可以在该实例下建数据对象,是共享表空间的,
每个用户在这个实例下面有自己可以操作的表,不同用户自己专有的表数据对象名可以相同,每个用户都有自己的权限,其中权限分为系统权限和对象权限(对数据
对象操作的权限)
数据对象包括:表,存储过程,视图,函数,序列,触发器,角色,表空间,工作,包等
7.oracle用户口令管理
通过创建profile文件来实现,profile是口令限制,资源限制的命令的集合
(1)账户锁定
创建profile规则aaa:用户输错三次密码,账户锁定两天
create profile aaa limit faild_login_attempts 3 password_lock_time 2;
将锁定规则aaa给用户liudh
alter user liudh profile aaa;//注:此处的profile是一个关键字
(2)账户解锁:(只有dba有权限)
alter user liudh account unlock;
(3) 终止口令:
强制让用户每隔10天修改一次密码,期限为2天
create profile bbb limit password_life_time 10 password_grace_time 2;
将规则bbb授予用户liudh
alter user liudh profile bbb;
(4)口令历史:
如果用户修改密码,不能和前一次一样,10天之后才可以修改为相同的
create profile passwordtime limit password_life_time 10 password_grace_time 2 password_reuse_time 10;
删除profile规则,一般是级联删除
drop profile passwordtime cascade;//级联删除