在oracle 11g中,我有一个包含应用程序所需的相关表的所有者模式。选择对所有表的访问
对于我的外部应用程序,我正在尝试创建另一个用户,该用户应该在某些表上选择访问上述架构的用户。 让失主模式A和新架构B
create user B identified by blah;
grant connect to B;
登录到原来的模式中的后,我跑以下(用于演示我对所有表给选择)
begin
FOR x IN (select * from user_tables)
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON ' || x.table_name || ' TO some_role';
END LOOP;
end;
grant some_role to B;
如果我以用户B登录并执行查询,如
select count(*) from A.some_table ;
它的工作原理。但是,如果没有创建公共同义词,我有可能以下列方式授予 以便以用户B身份登录时执行以下操作?
select count(*) from some_table;
感谢
,我得到空行。即使SELECT * FROM USER_TAB_PRIVS用户B给出的空行 – cableload
对不起,我在做它通过角色......所以选择*来自role_tab_privs的作品! – cableload
@cableload谢谢,由于某种原因没有注意到角色问题。我相应地修改了我的答案。 – Mureinik