Oracle 授予用户在连接后查看表的权限

Oracle 授予用户在连接后查看表的权限,oracle,Oracle,我已经为两个表的特定用户授予了select、update、insert和create会话。当我使用SQLDeveloper与该用户登录时,他们看不到表。还有其他权限吗?没有更多信息(请参阅我的评论),我打赌您正在启动SQL Developer,连接到数据库,然后打开树控件的“表”部分并在那里查找表。如果是这样的话,你找错地方了。在SQLDeveloper中,您需要展开“其他用户”,导航到拥有表的用户,然后打开该用户下树控件的“表”部分,以便查看这两个表 如果试图对表运行查询,默认情况下,需要提供

我已经为两个表的特定用户授予了select、update、insert和create会话。当我使用SQLDeveloper与该用户登录时,他们看不到表。还有其他权限吗?

没有更多信息(请参阅我的评论),我打赌您正在启动SQL Developer,连接到数据库,然后打开树控件的“表”部分并在那里查找表。如果是这样的话,你找错地方了。在SQLDeveloper中,您需要展开“其他用户”,导航到拥有表的用户,然后打开该用户下树控件的“表”部分,以便查看这两个表

如果试图对表运行查询,默认情况下,需要提供完全限定的表名

SELECT *
  FROM owner_of_the_table.table_name
如果希望消除使用完全限定表名的需要,可以为表创建同义词(public或private)。创造同义词将是传统的方法。或者,您可以在会话级别执行以下操作

ALTER SESSION SET current_schema = <<owner of the table>>
ALTER SESSION SET current\u schema=

这将导致使用指定的模式而不是当前用户的模式解析任何不合格的引用。

什么是“看不到表”?您正在执行查询吗?或者您指的是SQL Developer用户界面中的某些内容?如果是,您指的是UI的哪一部分?我使用的是SQL Developer,我以系统用户身份登录,这是正确的,但我没有看到“其他用户-->其他用户名-->表”下的两个表empty@c12-所以您是以
系统
的身份登录的。您是否授予系统访问这两个表的权限?哪个用户拥有这两个表?我以系统用户身份登录并创建了没有所有者名称的表。我想我应该删除它们并使用SYSTEM.table重新创建_name@c12-一张桌子总是有主人的。所有者将是您在创建表时登录的任何用户。实际上,您不应该登录到
SYS
SYSTEM
模式来创建新对象。对象应始终在您创建的新模式中创建,而不是在Oracle附带的模式中创建。