对于我的Oracle数据库,我创建了一个用户.我希望该用户只能访问3个表.所以我写了这些查询:
grant select on table1 to newuser;
grant select on table2 to newuser;
grant select on table3 to newuser;
Run Code Online (Sandbox Code Playgroud)
我从控制台得到了这个,这确保我给了补助金.
GRANT succeeded
Run Code Online (Sandbox Code Playgroud)
但是,当我与此用户连接到数据库并编写以下查询时,我收到ORA-00942错误.
Select * from table1;
Run Code Online (Sandbox Code Playgroud)
我想我需要为特权和角色编写额外的查询(我已经添加了CONNECT角色).可能是什么?
通过指定表所有者来运行查询.
Select * from tableowner.table1;
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,则表示您未在正确的表上授予访问权限,或者您使用错误的用户登录.
记住,同一个表名可以存在于多个模式中.