Oracle 常用操作

04 Sep 2014

Oracle 默认创建的三个用户

用户 注释
sys 超级管理员,权限最高,角色为dba,初始密码为change_on_install。所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改,sys用户拥有dba,sysdba,sysoper角色,是oracle权限最高的用户。sys用户必须以as sysdba 或者 as sysoper形式登录,不能以normal方式登录数据库。
system 系统管理员,权限高,角色为dbaoper,初始密码为manager。用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息,system用户拥有dba,sysdba角色。system如果正常登录,它就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的。
scott 普通用户,初始密码为tiger

Oracle 常用操作

连接数据库: conn[ect] 用户名/密码 [as sysdba/sysoper]; 当用特权用户身份连接时,带上 as sysdba 或 as sysoper。断开连接:disc[onnect]

修改密码: passw[ord] 用户名; 当给别人修改密码时需要dba权限,或者拥有alter user的系统权限:alter user 用户名 identified by 新密码;

运行sql脚本:start d:\a.sql;

linesize: 设置显示行的宽度; 用法:set linesize 20;

pagesize: 设置每页显示行数目; 用法:set pagesize 20;

spool命令: 可以将sql*plus屏幕上的内容输出到指定文件中去;例如把student输入到文件a.sql中


sql> spool d:\a.sql;
sql> select * from student; 
sql> spool off; 

用户管理

创建与删除用户:


sql> create user 用户名 identified by 密码;
sql> drop user 用户名 [cascade];

如果要同时删除用户所建的表,就需要带参数 cascade。创建的新用户是没有任何权限的,甚至连登陆数据库的权限都没有,需要为其指定相应的权限,oracle权限分为系统权限 [用户对数据库的相关权限] ,对象权限 [用户对其他用户的数据对象操作的权限] ; 对象权限有select, insert, update, create index, ..., all。给一个用户赋予权限命令:grant; 回收权限命令:revoke。

赋予与收回权限


sql> grant select on scott.emp to xiaoming;
sql> grant connect to xiaoming;
sql> revoke select on scott.emp from xiaoming;

即赋予小明查询scott的emp表的权限;其中connect称为角色,这种角色包含多种权限。角色分为预定义角色和自定义角色,常用的角色有:connect, dba, resource...

权限的传递


sql> grant select on scott.emp to xiaoming with grant option;
sql> grant connect to xiaoming with admin option;

则小明可以把查询scott.emp的权限和把角色connect拥有的权限赋予其他人;若小明的权限被收回,那小明下面的人的权限也同时被收回。

profile管理用户口令

账户锁定: 可指定用户最多尝试登陆次数3,及锁定时间两天; 超级管理员也可解锁


sql> create profile lock_account limit failed_login_attempts 3 password_lock_time 2; 
sql> alter user xiaoming profile lock_account; 
sql> alter user xiaoming account unlock; 

定期修改密码: 可指定用户每隔10天修改密码,宽限为2天,密码20天后可重复使用;也可删除某种profile:


sql> create profile modify_password limit password_life_time 10 password_grace_time 2 password_reuse_time 10; 
sql> alter user xiaoming profile modify_password; 
sql> drop profile modify_password [cascade];