我正在使用oracle数据库11g第2版 我能够创建用户并为其创建会话权限,但我无法给它选择权限。
create user user1 identified by pass;
User created.
grant create session to user1;
Grant succeeded.
grant select on emp to user1;
Grant succeeded.
在此之后我以user1连接 现在当我运行这个陈述时,它说
select * from emp;
oracle reply =
ERROR at line 1:
ORA-00942: table or view does not exist
我使用
检查了对user1的权限select * from session_privs;
PRIVILEGE
---------------------------------
CREATE SESSION
这意味着user1只能使用创建会话权限。如何为user1提供select权限?
答案 0 :(得分:2)
使用SELECT
权限(或任何其他权限)不会创建同义词。如user1
,不表的所有者,您仍应使用所有者以完全限定名称引用该表。
假设所有者被称为owner1
,user1
的查询应为:
SELECT * FROM owner1.emp
对于数据字典查询,这也是预期的。这些权限记录在[DBA|ALL|USER]_TAB_PRIVS
视图中:
SELECT * FROM all_tab_privs WHERE grantee = 'USER1'