首批通过分布式安全可靠测评,为关键业务系统打造
secure_file_priv
更新时间:2026-03-27 09:49:05
说明
该变量从 V2.2.77 版本开始引入。
功能描述
secure_file_priv 控制导入或导出到文件时可以访问的路径。
说明
log/alert 目录属于系统租户的文件访问权限白名单,在检查 secure_file_priv 权限时可以跳过该目录。
注意
由于安全原因,只能使用通过本地 Unix Socket 连接的 Client 执行修改该全局变量的 SQL 语句。
权限要求
查询变量
sys租户和所有用户租户均可以使用SHOW VARIABLES语句或视图SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE(Oracle 模式)及视图information_schema.GLOBAL_VARIABLES(MySQL 模式)查看 Global 系统变量的值。修改变量
Global 生效
sys租户可以直接修改 Global 系统变量的值。MySQL 用户租户需要拥有
SUPER或ALTER SYSTEM权限才能修改 Global 系统变量的值。Oracle 用户租户需要拥有
ALTER SYSTEM权限才能修改 Global 系统变量的值。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | Varchar |
| 默认值 | "",表示空字符串。
说明从 V4.2.1 版本开始默认值由 |
| 取值范围 |
说明从 V4.2.0 版本开始,枚举值 |
| 生效范围 | Global |
| 是否可修改 | 是,支持通过 SET 语句修改。 |
| 是否可为空 | 是 |
使用说明
仅支持通过本地 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 节点连接到该租户。
配置示例
设置导入或导出到文件时可以访问的路径为 ""。
obclient> SET GLOBAL secure_file_priv = "";