您的位置:首页 > 数据库 > Oracle

oracle密码机制以及常用操作

2012-04-15 18:03 190 查看
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;

密码的三种验证机制

操作系统验证

密码文件验证

数据库验证

SYS密码丢失解决:

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

linux下Oracle的启动过程:

lsnrctl start 启动监听

sqlplus / as sysdba进行密码文件和操作系统验证

(在Oracle9i一下版本登录):

{

sqlplus /nolog

conn sys/oracle as sysdba;}

startup 启动实例

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' --查看用户下面有多少个角色;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: