4.關於數據庫權限

1.授予權限語法:
                grant system_privilege1,... to user_name | public
                public
                將系統權限授予每個用戶,包括後創建的用戶

          例子: grant create user,create table,create procedure,create view,create session to wang

2.一些常用權限

               
               允許用戶登錄 :  create/alter/drop session
     
                         例: grant create session to wangjie grant create session to wang

               創建修改刪除用戶 create/alter/drop user
             
                         例:   grant create user to wang
     
                 創建修改刪除表的權限 :create/alter/drop table
                  
                           例:  grant create table to wang
                
                有了創建表的權限,但是並沒有指定保存表的空間大小,所以依然無法創建表
                解決(建議使用第一種)
                1.授予
                unlimited tablespace
                無限表空間
                2.在quotas選項卡中指定users表空間大小

       

               創建修改刪除 序列: create/alter/drop sequence
                  
                         例:  grant create sequence to wang
               
                創建修改刪除 視圖 :create/alter/drop view
                  
                          例:  grant create view to wang
                
               創建修改刪除函數和存儲過程,沒有專門的創建函數的權限:create/alter/drop procedure
                       
                           例:grant create procedure to wang
               
3.角色權限
      1. 角色權限 實質就是系統權限
     
      2. 什麼是角色
                將一系列權限捆綁,定義一個名字,即角色名
      3. 創建角色
                            create role role1;
         語法:       create role role_name
       4.爲角色授權限
                       grant create user,create table,create procedure,create view,create session to role1;
         語法:     grant system_privilege1,... to role_name
        5.爲用戶授予角色
                  grant role1 to wang; grant role1 to public
                   語法:      grant role_name to user_name | public
        6. 刪除角色
                    語法: drop role role_name
        7. 注意:
                一個用戶可以被授予多個角色

4.對象權限
       1.什麼是對象
                數據庫中創建的數據庫對象
                表,索引,序列,觸發器,函數,存儲過程,視圖
       2. 什麼是對象權限
                對數據庫中對象的操作權限就是對象權限
       3. 爲什麼需要對象權限
                數據庫對象擁有者爲其他用戶賦予操作此對象的權限
                分配後其他用戶能夠操作此數據庫對象
                誰創建了對象,誰就擁有該對象的所有對象權限
 
                 4.注意:
                1.並不是數據庫中的每個對象都可以授予上面的權限
                2.誰創建了對象,誰就擁有該對象的所有對象權限,例子:scott創建了一個表,scott用戶可以對錶對象進行增刪改查
                 
           當一個用戶操縱裏一個用戶數據庫對象時,其語法爲: 用戶名.對象名
        5.語法:
                grant object_privilege1......... on object_name to user_name | public 【with grant option 】
                grant select,insert,update,delete on books to wang;
             
                 with grant option
                允許所分配的權限再次下放
                要撤銷這個權限,要先撤銷權限,再重新授予一個不帶with grant option 的權限
5. 撤銷權限
   1. 系統權限
        語法:revoke system_privilege1,... from user_name | public
   
    2. 撤銷角色: 撤銷角色意味着撤銷系統權限
              revoke role1 from public revoke role1 from wang
        語法:revoke role_name from user_name | public
       
             3. 撤銷對象權限
     
       語法:recoke object_privilege1......... on object_name from user_name | public
  6.查詢指定角色中有哪些系統權限

  select * from dba_sys_privs where grantee = 'CONNECT'; select * from dba_sys_privs where grantee = 'RESOURCE';
  select * from dba_sys_privs where grantee = 'role1'
        注意:角色名要大寫
 7.創建一個用戶,和scott用戶權限相同

  create user wangjie identified by root;
  grant resource,connect to wangjie;
 
當爲用戶授予resource角色後,默認會添加unlimited tablespace權限
             
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章