oracle數據庫用戶之間授權


 今天遇到一個數據庫的問題:

  系統數據庫用戶下創建了幾個視圖用於外部系統開發報表使用,當外部系統提取視圖數據時,需要通過一個只能訪問需要視圖權限的用戶,於是想到給他創建一個新的用戶,並給這個用戶分配只能訪問這幾個視圖的權限。

  1.   使用 oracle sql developer 客戶端登陸數據庫。

                

 

  2.  查看當前數據庫用戶擁有的角色:

     select * from USER_ROLE_PRIVS; 

     

    

 


   

     USER_ROLE_PRIVS 描述授予當前用戶的角色。

 USER_ROLE_PRIVS


 

   DBA_SYS_PRIVS描述授予用戶和角色的系統權限。

  oracle—DBA_SYS_PRIVS數據字典

   


 

   查看用戶系統權限:select * from dba_sys_privs;

   

 

  


 

   USER_SYS_PRIVS描述了授予當前用戶的系統權限。

   USER_SYS_PRIVS

   


 

    查看用戶系統權限:select * from user_sys_privs;

    

 

    3、因為系統數據庫用戶擁有dba權限,所以,使用數據庫系統用戶創建用戶:

     create user BI identified by 123;

    

    

    

    4、給BI用戶授權連接權限:

      grant connect to BI;

    

    5、給BI用戶授權

      grant RESOURCE to BI;

    

    6、給BI用戶授權select 某視圖的權限:

      

      

 

    7、使用BI用戶連接數據庫:

      查詢視圖發現提示表或視圖不存在:SELECT * FROM VW_MONTHLY_BUDGET_ANALYSI;

      

 

      在視圖前加上視圖所有者用戶名稱則可以查詢成功。 eg:SELECT * FROM FSSC.VW_MONTHLY_BUDGET_ANALYSI;

      

 

      

    7、給BI用戶授權同義詞權限:

      

 

    8、使用BI用戶連接數據庫:

      此時查詢發現還是不可以!!!

      

 

    9、在BI用戶下創建同義詞視圖:

      

 

    10、BI用戶下直接查詢視圖名稱則可以查詢

      

 

    11、但是登陸BI用戶,則在視圖列表里看不到任何視圖,如何能夠查詢並且登陸用戶也能看到該視圖?

 

    

 

     

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM