今天遇到一個資料庫的問題: 系統資料庫用戶下創建了幾個視圖用於外部系統開發報表使用,當外部系統提取視圖數據時,需要通過一個只能訪問需要視圖許可權的用戶,於是想到給他創建一個新的用戶,並給這個用戶分配只能訪問這幾個視圖的許可權。 DBA_SYS_PRIVS描述授予用戶和角色的系統許可權。 查看用戶系統許可權: ...
今天遇到一個資料庫的問題:
系統資料庫用戶下創建了幾個視圖用於外部系統開發報表使用,當外部系統提取視圖數據時,需要通過一個只能訪問需要視圖許可權的用戶,於是想到給他創建一個新的用戶,並給這個用戶分配只能訪問這幾個視圖的許可權。
- 使用 oracle sql developer 客戶端登陸資料庫。
- 查看當前資料庫用戶擁有的角色:
select * from USER_ROLE_PRIVS;
查看用戶系統許可權:select * from dba_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用戶連接資料庫:
查詢視圖發現提示表或視圖不存在
在視圖前加上視圖所有者用戶名稱則可以查詢成功。 eg: select * from ORCL.VW_STAFF;
7、給BI用戶授權同義詞許可權:
8、使用BI用戶連接資料庫:
9、創建同義詞視圖:
10、直接查詢視圖名稱則可以查詢
11、但是登陸BI用戶,則在視圖列表裡看不到任何視圖,如何能夠查詢並且登陸用戶也能看到該視圖?