Oracle密码机制以及常用操作


Oracle 默认有3个用户: sys 密码:自定;system 密码:自定 ;scott 密码:Tiger(默认锁定);
注:用Sys用户登录须根 [as sysdba]

desc 表名:查看表结构;
Dos启动监听:lsnrctl start
Dos启动Oracle实例服务: oradim -starup -sid orcl
查询用户的系统权限:select * from user_sys_privs;
查询用户的表权限:select * from user_tab_privs;
赋予系统权限的时候在用户后跟:with admin option;--意味着赋予权限的对象有权限将此权限进行传递;
赋予对象权限的时候在用户后跟:with grant option;--可以进行权限传递
对象权限:谁创建,谁授予;
系统权限:sys>>A,A>>B,if(sys<<A) B的权限依然存在;
对象权限:A>>B; B>>C ;if(A<<B) C的权限也会被撤销;
角色可以理解为权限的集合;
创建角色语句: create role 角色名;
删除角色:drop role 角色名;
有些系统权限不能放入角色,比如:unlimited tablespace 权限(工作时不能使用).
不能放入角色的权限只能有Sys直接赋予;
将权限限制到列:grant select(id) on mytable to lisi;
oracle修改会话的时间格式:alter session set nls_date_format='yyyy-mm-dd';

权限对比:

create table ;create any table;

alter table(注意:oracle没有这种权限);   alter any table;
drop table(注意:oracle没有这种权限);    drop any table;


数据的三种验证机制
操作系统验证
密码文件验证

数据库验证

linux下Oracle的启动过程:
lsnrctl start 启动监听
sqlplus / as sysdba进行密码文件和操作系统验证
(在Oracle9i一下版本登录):
{
sqlplus /nolog
conn sys/oracle as sysdba;}
startup 启动实例

SYS密码丢失解决:

删掉Oracle密码文件,用orapwd file=密码文件路径(文件名要PWDorcl.ora格式) password=Sys密码 entries=特权用户的数量限制 force=是否强制覆盖

select * from v$pwfile_users;//查询有多少特权用户


--select * from dba_users; 查询数据库中的所有用户


  --alter user TEST_SELECT account lock; 锁住用户


  --alter user TEST_SELECT account unlock; 给用户解锁


  --create user xujin identified by   xujin; 建立用户


  --grant create tablespace to xujin; 授权


  --grant select on tabel1 to xujin; 授权查询


  --grant update on table1 to xujin;


  --grant execute on procedure1 to xujin 授权存储过程


  --grant update on table1 to xujin with grant option; 授权更新权限转移给xujin用户,许进用户可以继续授权;

  --收回权限


  --revoke select on table1 from xujin1; 收回查询select表的权限;


  --revoke all on table1 from xujin;


  /*grant connect to xujin;


  revoke connect from xujin


  grant select on xezf.cfg_alarm to xujin;


  revoke select on xezf.cfg_alarm from xujin;*/


  --select table_name,privilege from dba_tab_privs where grantee='xujin' 查询一个用户拥有的对象权限


  --select * from dba_sys_privs where grantee='xujin' 查询一个用户拥有的系统权限


  --select * from session_privs --当钱会话有效的系统权限


  --角色


  --create role xujin1;--建立xujin1角色


  --grant insert on xezf.cfg_alarm to xujin1; 将插入表的信息


  --revoke insert on xezf.cfg_alarm from xujin1; 收回xujin1角色的权限


  --grant xujin1 to xujin ; 将角色的权限授权给xujin;


  -- create role xujin2;


  --grant xujin1 to xujin2; 将角色xujin1授权给xujin2;


  --alter user xujin default xujin1,xujin2; 修改用户默认角色


  -- DROP ROLE xujin1;删除角色1;


  --select * from role_sys_privs where role=xujin1;


  --查看许进1角色下有什么系统权限;


  --select granted_role,admin_option from role_role_privs where role='xujin2';


  --查看xujin1角色下面有什么角色权限


  --select * from role_sys_privs where role='xujin2';


  --select table_name,privilege from role_tab_privs where role='xujin1';


  --select * from dba_role_privs where grantee='xujin' --查看用户下面有多少个角色;

更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12

相关内容