应用程序需要访问各种Oracle数据库。有些数据库在Schemas中有表,有些没有 - 没有控制权。
如果数据库中正在使用模式,则除非用户输入模式,否则适用的模式将无效。我希望它能够通过SQL查询确定是否需要模式来访问表,以便用户可以收到警报。
我知道这个问题 - How do I obtain a list of schemas that an Oracle user has access to - 但这只能告诉我可以访问哪些模式,而不是访问表需要使用模式。
是否有一个SQL查询可以使用该用户的权限对其中一个系统表执行此操作?
注意:应用程序仅具有登录凭据,并且不知道任何表详细信息。
希望很清楚。感谢。
答案 0 :(得分:0)
问题令人困惑。对于Oracle中的大多数部分,您可以考虑LOGIN == USER == SCHEMA。当您与用户一起登录数据库时,您可以查看和访问该用户架构中的所有对象。
如果连接用户具有访问表的权限(有不同的权限......),则SCHEMA2.TABLE1可以接收其他模式(在同一数据库服务器上)中的对象。正如一些注释中所述,如果存在同义词,则不需要为表添加前缀。
如果存在适当的数据库链接,您的用户甚至可以访问某些远程服务器上的表。