首批通过分布式安全可靠测评,为关键业务系统打造
secure_file_priv
更新时间:2026-04-01 20:05:04
说明
该变量从 V2.2.77 版本开始引入。
功能描述
secure_file_priv 用于控制导入或导出到文件时可以访问的路径。仅数据库管理员可以设置该变量,其他人无法设置。
权限要求
查询变量
sys租户和所有用户租户均可以使用SHOW VARIABLES语句或视图information_schema.GLOBAL_VARIABLES(MySQL 模式)查看 Global 系统变量的值。修改变量
Global 生效
sys租户可以直接修改 Global 系统变量的值。MySQL 用户租户需要拥有
SUPER或ALTER SYSTEM权限才能修改 Global 系统变量的值。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | Varchar |
| 默认值 | "NULL" |
| 取值范围 |
|
| 生效范围 | GLOBAL |
| 是否可修改 | 是,支持通过 SET 语句修改。 |
| 是否影响计划的生成 | 是 |
| 是否可为空 | 是 |
使用说明
在 V3.2.4 版本中,变量 secure_file_priv 的行为有以下变更:
V3.2.4 BP5 之前版本
通过本地 Client (即:OBClient 所在机器与连接的 OBServer 所在机器的 IP 地址相同。)执行修改该全局变量的 SQL 语句。
obclient -h127.0.0.1 -P2881 -u******@obtenant -p******V3.2.4 BP5 及之后版本
仅支持通过本地 Unix Socket 连接 OceanBase 数据库。
obclient -S /home/admin/oceanbase/run/sql.sock -u******@obtenant -p******如果当前的用户与 OBServer 启动的用户不同,则当前用户不会有
sql.sock的权限,需要通过以下命令进行连接。sudo -u <user of observer> obclient -S /home/admin/oceanbase/run/sql.sock -u******@obtenant -p******参数说明如下:
- -S:提供 本地 OBServer 节点的 Unix Socket 文件路径,位于本地 ObServer 安装目录下的run/sql.sock,默认 Unix Socket 文件路径为
/home/admin/oceanbase/run/sql.sock。 - -u:提供租户的连接账户,格式为:
用户名@租户名。
通过 Unix Socket 方式连接时,只能连接本地 OBServer 节点,同时也需要确保该租户的资源分布在本地 OBServer 节点上,如果该租户的资源未分布在本地 OBServer 节点上,则无法通过本地 OBServer 节点连接到该租户。
- -S:提供 本地 OBServer 节点的 Unix Socket 文件路径,位于本地 ObServer 安装目录下的run/sql.sock,默认 Unix Socket 文件路径为
配置示例
修改安全文件所在路径,指定文件所在路径名为空字符串。示例如下:
obclient> SET GLOBAL secure_file_priv = "";