今天遇到一個數據庫的問題:
系統數據庫用戶下創建了幾個視圖用于外部系統開發報表使用,當外部系統提取視圖數據時,需要通過一個只能訪問需要視圖權限的用戶oracle數據庫激活授權,于是想到給他創建一個新的用戶,并給這個用戶分配只能訪問這幾個視圖的權限。
使用 sql 客戶端登陸數據庫。
2.查看當前數據庫用戶擁有的角色:
* from ;
查看用戶系統權限: * from ;
查看用戶系統權限: * from ;
3、因為系統數據庫用戶擁有dba權限,所以oracle數據庫激活授權,使用數據庫系統用戶創建用戶:
user BI by 123;
4、給BI用戶授權連接權限:
grant to BI;
5、給BI用戶授權
grant to BI;
6、給BI用戶授權 某視圖的權限:
7、使用BI用戶連接數據庫:
查詢視圖發現提示表或視圖不存在: * FROM ALYSI;
在視圖前加上視圖所有者用戶名稱則可以查詢成功。 eg: * FROM FSSC.ALYSI;
7、給BI用戶授權同義詞權限:
8、使用BI用戶連接數據庫:
此時查詢發現還是不可以!!!
9、在BI用戶下創建同義詞視圖:
10、BI用戶下直接查詢視圖名稱則可以查詢
11、但是登陸BI用戶,則在視圖列表里看不到任何視圖,如何能夠查詢并且登陸用戶也能看到該視圖?