我的数据库具有一个外部表(my_ext_table),该表指向数据库服务器硬盘驱动器上的文本文件(my_text_file.txt)。当我使用TOAD连接到数据库服务器时,我使用数据库的用户名和密码(my_db_account)。要访问文本文件,我使用完全不同的用户(my_linux_os_account),该用户使用终端服务访问数据库服务器。
当我尝试从TOAD的my_ext_table中选择数据时,出现以下错误:
[Error] Execution (25: 30):
ORA-29913: error in executing ODCIEXTTABLEFETCH callout ORA-29400: data cartridge error
KUP-04005: error while accessing file /my_server_dir/my_text_file.txt
日志文件中包含以下错误:
KUP-04017: OS message: Permission denied
KUP-04118: operation "open failed", location "SlfOpen1"
以my_linux_os_account登录到终端服务时,我可以查询该表,并且以my_db_account登录,可以使用sqlplus登录。
我希望能够使用TOAD查询表。
我的同事建议我应该尝试使用my_linux_os_account用户身份进行代理。
是否可以从TOAD编辑器窗口中执行此操作?我应该使用哪种工具作为其他用户代理以使用select语句访问数据?
或者,可以更改文本文件上的权限,以便我的数据库用户拥有该文本文件的权限吗?
答案 0 :(得分:1)
要使查询在TOAD中生效,我修改了my_text_file.txt的权限:
chmod o=r my_text_file.txt