更新时间:2026-10-21 GMT+08:00
CREATE DIRECTORY
功能描述
创建一个目录对象,该目录对象可以定义服务器文件系统上目录的别名,用于存放用户使用的数据文件,用户可以通过DBE_FILE高级包进行读写这些文件。用户可在PG_DIRECTORY表中查看系统已存在目录对象。
注意事项
- 目录对象的默认所有者为创建目录对象的用户,创建用户默认拥有此目录对象的READ和WRITE操作权限。当enable_access_server_directory=off时,只允许初始用户创建目录对象。当enable_access_server_directory=on时,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建目录对象。
- 对于用户自行部署的数据库场景,由用户自主完成权限体系的初始配置及管理,当进行目录权限授权时,必须确保目标目录满足以下安全条件:通过安全基线核查、具备访问控制审计机制以及完成敏感数据分类分级等安全条件要求。权限配置应遵循最小权限原则,并建立权限审批追溯机制等。
- 目录对象可向指定用户授予READ和WRITE操作权限,用于dbe_file的权限控制。请合理创建目录对象,若目录对象创建于操作系统的关键目录(如根目录)下,当对目录文件中的配置进行修改时,可能会引发非预期的安全风险问题。
语法格式
1 2 | CREATE [OR REPLACE] DIRECTORY directory_name AS 'path_name'; |

参数说明
- directory_name
创建的目录对象的名称。
取值范围:字符串,要符合标识符命名规范。
创建目录对象时会进行以下合法性校验:- 检查添加路径是否为操作系统实际存在路径,如不存在会提示用户使用风险。
- 校验数据库初始化用户(如omm)对于添加路径的权限(即操作系统目录权限,读/写/执行 - R/W/X),如果权限不足,会提示用户使用风险。
- path_name
服务器文件系统上的目录路径。
取值范围:有效的操作系统路径。
- 在集群环境下,用户指定的目录路径需要保证各节点上路径的一致性,否则在不同节点上执行会产生无法匹配路径的问题。
- 禁止创建以下目录路径:
- 路径含特殊字符。
- 路径是相对路径。
示例
1 2 3 4 5 6 7 8 9 10 11 12 | --创建目录对象。 gaussdb=# CREATE OR REPLACE DIRECTORY dir AS '/tmp/'; --查看已创建的目录对象。 gaussdb=# select * from pg_directory; dirname | owner | dirpath | diracl ---------+-------+---------+-------- dir | 10 | /tmp | (1 row) --删除目录对象。 gaussdb=# DROP DIRECTORY dir; |
父主题: C