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);                                       
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章