外部表的 ORACLE 目录权限

Posted

技术标签:

【中文标题】外部表的 ORACLE 目录权限【英文标题】:ORACLE directory premissions for external tables 【发布时间】:2013-02-22 16:20:22 【问题描述】:

我有一个 oracle 外部表。为使用外部表读取输入 CSV 文件创建了一个 oracle 目录。外部表的 DISCARD、LOG 和 BAD 文件将在同一目录下创建。

当 unix 上对应目录的权限为“1770”时,外部表无法从该目录读取或写入。当该目录的权限更改为“1777”时,外部表能够对该目录进行读写。

当该目录的权限为 1770 时,我无法弄清楚问题出在哪里。请向我提供有关此奇怪行为的任何提示。

请注意,oracle 模式用户对该目录具有 READ 和 WRITE 授权。

【问题讨论】:

【参考方案1】:

哪个用户和组拥有操作系统目录?什么操作系统用户运行 Oracle 数据库?运行 Oracle 的操作系统用户属于哪个组?

从您的描述看来,运行 Oracle 的操作系统用户并不拥有操作系统目录,也不属于拥有该目录的组。在 Unix 中,目录的权限被授予用户(前 7 个)、组(第二个 7)和公众(第三个数字,在您的示例中为 7 或 0)。如果更改与公共相关的权限正在更改行为,则意味着 Oracle 操作系统用户仅具有授予公共此目录的权限。

【讨论】:

感谢贾斯汀的解释。在我的情况下,执行代码的用户和启动 ORACLE 的用户不属于同一组。再次感谢。

以上是关于外部表的 ORACLE 目录权限的主要内容,如果未能解决你的问题,请参考以下文章

oracle中有没有赋予一个用户查询另一个用户所有表的权限

oracle中有没有赋予一个用户查询另一个用户所有表的权限

Oracle 创建用户 却赋予不了权限,该怎么处理

oracle中怎么赋予用户权限

oracle中怎么赋予用户权限

oracle 怎样给用户赋予普通用户登陆权限?