1. 程式人生 > >oracle 使用者之間訪問的許可權設定

oracle 使用者之間訪問的許可權設定

假如Oracle中有兩個使用者A和B,如果A要訪問B擁有的表

SELECT * FROM B.TABLENAME。
在A下 grant connect,resource to B
在B下 grant connect,resource to A
讓這兩個使用者可以互相訪問各自的物件(表,過程和函式等)

訪問表的時候要注意:比如說A的a表

訪問的時候 用A.a Oracle 

設定只能訪問某幾張表許可權的使用者

首先那幾張表不屬於這個使用者user1。
然後登入那幾張表所在的使用者user2(或管理員),
conn user2/password
grant select on table1 to user1;
grant select on table2 to user1;

把一個使用者所有表的讀許可權授予另一個使用者

方法一:select 'GRANT SELECT ON A.'||object_name||' to B;' from dba_objects where owner='A' and object_type='TABLE';
方法二:select 'grant select on user1.'||table_name||' to user2;'
from all_tables
where owner = 'user1';
方法三:用隱式遊標法
declare
begin
for cr in (select table_name from dba_tables where owner='表屬主') loop
execute immediate
'grant select on 表屬主.' || cr.table_name || ' to 目標使用者;
end loop;

end;

A 表訪問B表ORA-01031:許可權不足的問題

grant SELECT ANY TABLE to username //許可權可以允許訪問所有表

grant all privileges TO username   //賦予任何主機訪問資料的許可權

更新另一使用者表中某些欄位

grant update (the_column) on the_table to userB;