玩转oracle学习第一天

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;//级联删除









 












你可能感兴趣的:(数据库开发,学习笔记)