【转载】oracle角色权限管理

----3个默认的用户

1 sys change_on_install [as sysdba] // 最高系统管理员
2 system manage// 本地管理员
3 scott tiger// 普通用户

----创建用户

create user leap identified by 1234 // 创建leap 用户 密码为1234

----系统授权

grant create seesion to leap;//系统管理员授权给leap会话的权限
grant create table to leap;;//系统管理员授权给leap创建表的权限
grant unlimited tablespace to leap;//系统管理员授权给leap 不限制表空间大小的权限 默认的表空间是Users

grant create session to public ;//把会话的权限授权给所有的用户
grant create any table to public ;//把创建任意表的权限授权给所有的用户
grant alter any table to public ;//把修改任意表结构的权限授权给所有的用户

-----------系统撤销授权

revoke create seesion from leap;// 撤销授权
revoke create table from leap;
revoke unlinited tablespace from leap;

------数据字典

  ----查询当前用户系统权限

select * from user_sys_privs

  ----查询当前用户表的权限

select * from user_tab_privs

  ----查询当前用户表的列的权限

select * from user_col_privs

  ----设定行的显示宽度

set linesize 400

----对象授权 {注意: 谁拥有该对象(即谁创建的对象) 谁拥有授权的权利}

grant select mytable to leap2
grant all my table to leap2
  ---授权表的列的控制权限,对象权限可以控制到列的范围
grant update<columnName> on mytable to leap2//把权限控制在表的列上 用户leap2 只能修改columnName 列
grant insert<columnName> on mytable to leap2//把权限控制在表的列上 用户leap2 只能修改columnName 列

{注意;授权列的控制权只能对update 和insert操作,查询和删除不能控制到列}

select * from user_col_privs//查询列的数据字典

 ---授权成功后 leap2 用户查询

select * from leap.mytable

 DDL--数据定义语言 create drop 。。。 不需要提交commit
   DDL--数据操纵语言 insert update delete 。。。 需要提交commit
   DCL--数据控制语言 grant 。。。 不需要提交 commit

------- 对象撤销授权

grant select mytable to leap2
grant all on mytable to leap2

-----权限的传递

  ---不可以权限传递

grant alter any table to leap2//把修改表结构的权限授权给leap2,并且leap2 不可以把此权限授权给其他的用户leap3

  ---可以权限传递

grant alter any table to leap2 with admin option//把修改表结构的权限授权给leap2, 并且leap2 可以把此权限授权给其他的用户leap3

-----把表的查询权限授权给其他用户 不能传递

grant select on mytable to leap2//把查询表的权限授权给leap2,并且leap2 不可以把此权限授权给其他的用户leap3

-----把表的查询权限授权给其他用户 能传递

grant select on mytable to leap2 with grant option//把查询表的权限授权给leap2,并且leap2 可以把此权限授权给其他的用户leap3

----角色 {角色就是权限的集合 可以把一个角色授予给用户}

---创建角色
create role myrole
---删除角色
drop myrole
--角色是权限的集合,所以要把权限放进角色内。
grant create session to myrole
grant create table to myrole
---授权角色给用户
grant myrole to leap
{注意:有些权限不能授权给角色}
    例如: unlimited tablespace
     表示属于创建它的用户的
     角色不是属于任意一个用户 是所有用户公用的

---限制用户

alter User 用户名 Account Lock//用户加锁
alter User 用户名 Account unLock//用户解锁
alter User 用户名 Password expire//用户密码即可失效

---删除用户      

drop User 用户名//用户下面每有对象
drop User 用户名 cascade//用户下面有表或者对象必须用cascade,cascade 表示强制删除用户所有对象   

----命令下启动oracle listener

lsnrctl start [listenerName]//启动
lsnrctl stop
[listenerName]//关闭
posted @ 2011-04-05 11:16  sizhengzhang  阅读(527)  评论(0)    收藏  举报