我们公司的第三方产品使用Oracle作为后端.我正在尝试登录Oracle数据库并查看架构和数据.我以sys/sysdba身份登录,创建了一个具有应用程序创建的默认表空间的用户,并授予用户查询结构所需的所有权限.我还将O7_DICTIONARY_ACCESSIBILITY设置为true以允许查询数据字典对象.
以用户身份登录并查询User_Tables后,不会返回任何内容.但是当我查询DBA_Tables时,我希望找到的表格会被返回.我是Oracle的新手,所以我不太确定非系统表如何在表空间中,而不是user_table.
更重要的是,您如何查询这些表中的数据?每当我从表中尝试一个简单的"Select*"时,我得到一个"表或视图不存在"错误.
提前致谢.
Jus*_*ave 15
您为用户设置的默认表空间控制创建该用户拥有的表空间对象.它与它们可以查询的对象无关.
USER_TABLES返回有关特定用户拥有的表的信息.这听起来不像您的用户拥有任何表,因此您可能希望它是空的.ALL_TABLES返回有关特定用户有权访问的表的信息.如果您授予了适当的权限,则您的用户应该在此数据字典视图中查看表.DBA_TABLES 即使您不一定有权访问基础表,也会返回有关数据库中每个表的信息.如果您尝试查询其中一个表中的数据,是否指定了模式名称(OWNER列中ALL_TABLES)?如果您不拥有对象,则通常需要使用完全限定名称来引用它,即
SELECT *
FROM schema_owner.table_name
Run Code Online (Sandbox Code Playgroud)
如果,您可以避免使用完全限定名称
您更改CURRENT_SCHEMA会话.这会更改在其下解析名称的默认架构.它不会影响权限和权限.您可以使用该命令更改当前架构
ALTER SESSION SET current_schema = new_schema_name
您必须为用户创建的每个会话执行此操作 - 可能在登录触发器中执行此操作.
| 归档时间: |
|
| 查看次数: |
10431 次 |
| 最近记录: |