oracle常用用户权限

一、用户权限控制
1.创建用户
create user user_name identified by password
例如:
create user zhangsan identified by zhangsan;
2.删除用户
drop user zhangsan cascade;
//解锁用户
alter user scott account unlock
//改密码
alter user scott identified by 新密码

3.赋予权限
    grant privilege to user;
    例如:把建表 建序列 建视图的权限赋给zhangsan
    grant create table, create sequence,create view to zhangsan; 
    //把connect角色和resource角色赋给zhangsan
    //角色是一组权限的集合
    grant connect,resource to zhangsan;  
    注意: 如果只是登陆oracle数据库的话 需要的权限是create session         
    //只能更新一列,只能是插入和更新可以控制到列
    grant update(name) on mytable to lisi;
4.权限能够传递    
  4.1、系统权限的传递
     超级管理员授予lisi修改任意表的管理权限:
       SQL>grant alter any table to lisi with admin option;
        授权成功。
    查看lisi用户的系统权限:
       SQL>select * from user_sys_privs;
    lisi用户授予wangwu用户任意表的权限:
       SQL>grant alter any table to wangwu with admin option;
       授权成功。
    查看wangwu用户的系统权限:
       SQL>select * from user_sys_privs;
  4.2、对象权限的传递(谁拥有谁授权)
    用管理员创建一个表A:
     SQL>create table A(id int);
      表已创建。
    把表A的查看权限授予给lisi:
     SQL>grant select on A to lisi with grant option;
     授权成功。
    查看lisi用户的对象权限:
     SQL>select * from user_tab_privs;
    lisi用户把查看sys.A表的权限授予给wangwu用户:
     SQL>grant select on sys.A to wangwu;
       授权成功。
    查看wangwu的对象权限:
      SQL>select * from user_tab_privs;
    让wangwu用户也有授予查看sys.A表的权限:
      SQL>grant select on sys.A to wangwu with grant option;
       授权成功。
    查看wangwu的对象权限:
      SQL>select * from user_tab_privs;        

5.修改密码
    alter user user_name identified by password; 
    例如:
    alter user zhangsan identified by zhangsan123; 
6.赋予某一个用户某种对象操作的权限
    grant operator on object to user;         
    例如:
    grant select  
    on t_user  
    to briup;  
7.回收权限
    revoke operator on object from user;
    例如:
    revoke select  
    on t_user  
    from briup;

8.角色的创建:
       SQL> create role myrole; 
        角色已创建。

 赋予角色创建表的权限

      SQL> grant create table to myrole; 

      授权成功。
 创建用户,用于将角色赋给用户
      SQL> create user zhangsan identified by zhangsan; 
      用户已创建。 

 给角色创建会话的权限,也就是连接数据库的权限       

      SQL> grant create session to myrole; 

     授权成功。
将角色赋给用户,使得用户拥有角色的权限,这就像我们平时使用的sys一样,也是一个角色
      SQL> grant myrole to zhangsan; 
      授权成功。

这样,张三用户就有了myrole角色所拥有的登录数据库的权限了
注意:在授权时,不能将unlimited tablespace 授予角色,角色是大家共用的
操作时没有drop table,但是有drop any table;
没有alter table,但是有alter any table
create table--可以给自己创建表
create any table----还可以给其他用户创建
例如:当前用户为wangwu,具有create any table ,并且lisi具有unlimited tablespace 权限

                      则可以这样创建表:create table lisi.A (id int);                                       
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章