5 sql oracle sqlplus ora-00942
根据system_privilege_map中的select name,系统已被授予:
SELECT ANY TABLE
Run Code Online (Sandbox Code Playgroud)
......以及许多其他*任何表格.
平稳地跑步
select * from the_table;
select * from the_table;
Run Code Online (Sandbox Code Playgroud)
...获得给定的回复:
第1行的错误:ORA-00942:表或视图不存在
我可以以该用户身份登录并运行相同的命令.
我正在运行假设我应该能够运行查询(在这种情况下选择)agaisnt一般用户的数据库表.我的假设是否正确,如果是,我该怎么做?
小智 9
如前面的响应所述,您可以在对象名称前加上模式名称:
SELECT * FROM schema_name.the_table;
Run Code Online (Sandbox Code Playgroud)
或者您可以使用同义词(私人或公共):
CREATE (PUBLIC) SYNONYM the_table FOR schema_name.the_table;
Run Code Online (Sandbox Code Playgroud)
或者,您可以发出alter session命令将默认架构设置为所需的架构:
ALTER SESSION SET current_schema=schema_name;
Run Code Online (Sandbox Code Playgroud)
请注意,这只是设置默认架构,相当于为所有(非限定)对象名称添加前缀schema_name.您仍然可以使用不同的模式名称为对象添加前缀,以从另一个模式访问对象.使用SET current_schema不会影响您的权限:您仍然拥有您登录的用户的权限,而不是您已设置的架构.
如果the_table由用户"some_user"拥有,则:
select * from some_user.the_table;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11562 次 |
| 最近记录: |