ORACLE授權用戶查詢另一個用戶下的表與視圖
實際應用中,會遇到在某個用戶下需要查詢另一個用戶下的表數據或視圖的情況,然而在沒有授權時,會提示無權限操作的錯誤。那就需要通過授權處理后,再能進行查詢操作,下面我們來看看是怎么處理的。
一、系統權限說明:
1、用戶權限
CREATE SESSIOIN 連接到數據庫
CREATE TABLE 在用戶的方案中創建表
CREATE SEQUENCE 在用戶的方案中創建序列
CREATE VIEW 在用戶的方案中創視圖
CREATE PROCEDURE在用戶的方案中創建存儲過程,函數或包
1.1、例子:授予系統權限
DBA能夠授予用戶指定的系統權限
GRANT create session,create table,
create sequence,create view
TO scott;
二、創建用戶只用於查詢其它用戶庫的表和視圖
1、創建用戶
2、授權查詢表與視圖權限
2.1、a用戶下授權查詢所有表給b用戶(a用戶登錄執行下面語句)
2.2、a用戶下授權查詢單個表給b用戶
2.3、a用戶下授權查詢所有序列給b用戶
2.4、--Oracle查詢用戶視圖
2.5、a用戶下授權查詢視圖給test11用戶
備注:授權更新、刪除的 語法和授權查詢類似,只是關鍵字不同而已。
三、撤消權限
1、授權a用戶下取消給b用戶刪除單個表的權限
revoke delete on a.tablename from b;
2、授權a用戶下取消給b用戶更新單個表的權限
revoke update on a.tablename from b;
3、擁有dba權限的用戶下取消給b用戶創建dblink的權限
revoke create database link from b;
4、擁有dba權限的用戶下取消給tes11用戶查詢任何表的權限
revoke select any table from test11;
四、事例:
1、在rh_test用戶下授權查詢所有表給wd用戶
2、a用戶下授權查詢單個表給test11用戶
3、授權a用戶下授權更新單個表給b用戶
grant update on a.tablename to b;
4、授權a用戶下授權刪除單個表給b用戶
grant delete on a.tablename to b;
5、擁有dba權限的用戶下授權創建dblink給b用戶
grant create database link to b;