首页 > 解决方案 > 为 ODBC 创建 oracle 只读用户

问题描述

我在 oracle 数据库上创建了一个用户,使用

create user xxx identified by test; 
grant create session to xxx;
grant select any table to xxx;
grant select any dictionary to xxx;

我还从 Excel 建立了一个 ODBC 连接,它对用户 yyy 工作正常,但是当我尝试对 xxx 做同样的事情时,我得到错误:表或​​视图不存在。

所以我的问题是,如何让表格出现/可供用户 xxx 使用?

感谢你的帮助。干杯

标签: oracle

解决方案


您需要在模式 XXX 中为模式 YYY 中的表创建 SYNONYM。

grant create synonym to XXX;

以用户 YYY 运行此 SQL。

select 'CREATE SYNONYM ' ||tname|| ' for  '||'YYY.'||TNAME||';'  from tab
where tname not like 'BIN$%'

例如,输出这个 sql。

CREATE SYNONYM TEST2 for  YYY.TEST2;
CREATE SYNONYM TEST_ARCHIVE for  YYY.TEST_ARCHIVE;
CREATE SYNONYM TEST_ONLINE for  YYY.TEST_ONLINE;

以 XXX 身份运行此 SQL

CREATE SYNONYM TEST2 for  YYY.TEST2;
CREATE SYNONYM TEST_ARCHIVE for  YYY.TEST_ARCHIVE;
CREATE SYNONYM TEST_ONLINE for  YYY.TEST_ONLINE;

推荐阅读