oracle 用户之间访问的权限设置

来源:互联网 发布:树洞表白墙免费源码 编辑:程序博客网 时间:2024/05/21 22:53

假如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;

0 0