在 oracle 11g 中,我有一个所有者模式,其中包含应用程序所需的相关表。
对于我的外部应用程序,我正在尝试创建另一个用户,该用户应该对上述模式的某些表具有选择访问权限。让我们调用所有者模式 A 和新模式 B
create user B identified by blah;
grant connect to B;
登录到原始模式 A 后,我运行了以下命令(对于演示,我在所有表上进行选择)
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;
谢谢