我只想让同事查看和编辑我创建的数据库。
我试过了:
GRANT ALL on FISHTABLE to CDEMARES;
然后它返回Grant succeeded
但是他没有任何改变,他仍然无法查看我的桌子。
我也试过
GRANT SELECT smahala.fishtable to cdemares@sole.nefsc.noaa.gov;
但SQL Error: ORA_00990: missing or invalid privilege
失败了。
我的问题是我没有管理权限允许其他人查看我的Oracle表吗?感谢任何建议,谢谢。
答案 0 :(得分:2)
您的同事需要在您的表格前添加您的架构名称,否则Oracle不知道在哪里查找它,例如:
select * from smahala.fishtable
如果他们不这样做,只是尝试使用:
select * from fishtable
然后,Oracle将在自己的架构中查找该表,然后查找视图,私有同义词或公共同义词。如果他们的同事要经常访问这张桌子,他们的同事可以创建一个同义词(并且他们没有自己的同名表格)。它也可以改变他们会话的当前模式,但这会使他们更难看到他们自己的对象。
您可以在文档中详细了解object naming和how to refer to objects。
SQL Developer允许您浏览其他模式中的对象。如果您的同事在您授予权限时已连接,则可以刷新对象列表,或断开连接并重新连接。无论哪种方式,他们都应该在你的架构下看到你的桌子。
(您的第二个授权声明缺少on
,并且您无法通过数据库链接授予权限,如果这是您尝试执行的操作。)