oracle实际的技术是在项目当中学习的。因此以后再项目当中多积累oracle相关的知识。

oracle实用教程/深入浅出oracle

dba数据库管理员认证:oracle的oca认证,是oracle的初级认证;第二个是:ocp【专家级认证】

 

sql*plus 常用命令
1、链接命令: conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper]
当用特权用户身份链接时,必须带上as sysdba 或是 as sysoper
例子: conn system/Manager123 ;

2、断开连接: disc[onnet]
说明:该命令用来断开与当前数据库的链接

3、修改密码:passw[ord]
说明:该命令用于修改用户的密码,如果想修改其他用户的密码就需要用sys/system登录

4、显示当前用户名:show user

5、exit
说明:该命令会断开与数据库的链接,同时会退出sql*plus

//文件操作命令
1、start和@
说明:运行sql脚本
案例:sql>@ d:\a.sql 或者 sql> START d:\a.sql

2、edit
说明:该命令可以编辑指定的sql脚本
案例:sql> edit d:\a.sql

3、spool
说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: 先输入 sql>spool d:\b.sql
然后给出屏幕的输出
最后输入sql>spool off


//交互式命令
1、&
说明:可以替代变量,而该变量在执行时,需要用户输入。
sql>select * from emp where job='&job'

2、edit
说明:该命令可以编辑指定的sql脚本。
sql>edit d:\a.sql

3、spool
说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: 先输入 sql>spool d:\b.sql
然后给出屏幕的输出
最后输入sql>spool off

//显示和设置环境变量
概述:可以用来控制输出的各种格式,set show ,如果希望永久的保存相关的设置,可以去修改glogin.sql脚本

(1)linesize
说明:设置显示行的宽度,默认是80个字符
sql>show linesize //显示行的宽度
sql>set linesize 90 //设置行的宽度

(2)pagesize
说明:设置每页显示的行数目,默认是14
用法跟linesize一样。

//用户管理
1、创建用户
create user 用户名 identified by 密码; 注意:创建的用户并没有任何权限,甚至都连接到数据库的权限都没有,因此需要给他赋予权限

2、给用户修改密码
如果是给自己修改密码就可以直接用:password 用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限:alter user 用户名 identified by 新密码

3、删除用户
一般以dba的身份去删除某一个用户,如果用其他用户去删除用户则需要具有drop user的权限
比如: drop user 用户名
注意:如果在删除用户时,如果用户已经创建了表,那么再删除时,需要带一个参数cascade将它所关联的表都删除
drop user 用户名 【cascade】

4、赋权限 :包括系统权限和对象权限

系统权限:用户对数据库的相关权限
对象权限:用户对其他用户啊的数据对象操作的权限

系统权限:
grant connect to 用户名 //给用户授权登陆数据库等权限 ,这是系统权限
grant resource to 用户名 //给用户授权可以创建表空间和查询的权限

注意:oracle数据库中的角色的概念是某个觉得拥有一些系统的权限的集合的统称。

希望新创建的用户去查询其他用户的表(即授权对象权限):
对象权限有以下几种:select,insert,update,delete,all,create index ...
grant select on 表名 to 用户名; //将表的查询操作授权给用户
grant all on 表名 to 用户名;//all表示表所有的权限都授权给用户

select * from scott.emp;//查询scott的emp表


这里收回权限:revoke
例如:scott希望收回xiaoming对emp表的查询权限
revoke select on emp from xiaoming;

注意:这里授权对象权限/收回权限的时候,只有表本身的用户或者SYS/SYSTEM用户来授权。

//对权限的维护,
希望xiaoming用户可以去查询scott的emp表,还希望xiaoming用户可以把这个权限继续给别人
则:如果是对象权限,就加入with grant option。
grant select on emp to xiaoming with grant option;

如果是系统权限。
grant connect to xiaoming with admin option ;

此时,如果scott把xiaoming的emp表的权限回收了,那么xiaoming授权的用户xiaohong的权限是否也被收回呢?
答案是:也被回收了。

////使用profile管理用户口令/////////////

profile是口令限制,资源限制的命令集合,当简历数据库时,oracle会自动建立名称为default的profile.当建立用户没有指定profile选项,那oracle就会default分配给用户

1、账户锁定:指定该账户登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba的身份去执行该命令。
例如:指定tea这个用户最多只能尝试三次登陆,三次输入失败之后就锁定,锁定时间为2天。

首先创建profile配置文件。其中lock_account 为该规则的名称
sql>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
然后修改用户的profile配置文件,并将前面产生的规则lock_account 应用到用户上,
sql>alter user tea profile lock_account;

2、给账户解锁
sql>alter user tea account unock;//必须要以管理员的身份登陆。

3、终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作
例如:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。
sql>create profile myprofile limit password_file_time 10 password_grace_time 2;
sql>alter user tea profile myprofile;

4、口令历史
如果希望用户在修改密码时,不能使用以前使用过的密码,可以使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
步骤如下:
1)首先尽力profile配置文件
sql>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;
这里的password_reuse_time指定口令重用时间,即10天后就可以重新使用
2)将profile配置文件分配给某个用户
sql>alter user tea profile myprofile;

5、删除profile文件
当不需要某个profile文件时,可以删除该文件,那么通过这个配置文件分配给的用户都失效哦
sql>drop profile password_history 【cascade】;//【cascade】表示级联的都删除掉