关于创建外表,需要设置 secure_file_priv
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001502601
官方文档这地方的描述容易有歧义,
这里所说的 当前用户与 OBserver 启动的用户不同, 这里所谓的 “OBServer启动的用户” 以及 命令中的
具体是指 操作系统的root用户 , 还是 启动observer进程的 admin用户?
关于创建外表,需要设置 secure_file_priv
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001502601
官方文档这地方的描述容易有歧义,
这里所说的 当前用户与 OBserver 启动的用户不同, 这里所谓的 “OBServer启动的用户” 以及 命令中的
具体是指 操作系统的root用户 , 还是 启动observer进程的 admin用户?
oceanbase官方安装文档建议使用admin用户,注意相关授权。可以参考https://www.cnblogs.com/werr370/p/17605451.html
你好,这里需要区分“当前用户”和“OBServer 启动的用户”的区别就更好理解:
1. 如果“当前用户”和“OBServer 启动的用户”都是 admin
不需要执行带有 sudo -u ...
的命令,因为 admin 用户它本身具有 sql.sock
的权限
2. 如果“当前用户”和“OBServer 启动的用户”不同
比如“当前用户”是 dba,“OBServer 启动的用户”是 admin,那么需要执行的命令就是 sudo -u admin obclient -S /home/admin/oceanbase/run/sql.sock -u******@obtenant -p******
,即在 dba 用户下、以 admin 身份去执行这条命令
根据文档库中的信息,可以明确以下几点来解答您的问题:
OBServer 启动的用户
根据文档片段 1 的描述,OceanBase 数据库(即 OBServer)通常由操作系统上的普通用户启动,而不是 root 用户。默认情况下,这个用户是 admin
用户。因此,OBServer 启动的用户是指 admin
用户,而非操作系统的 root 用户。
文档片段 1 中提到:
创建 admin 用户组和用户,并配置密码。所有 OBServer 节点的用户 uid 需要保持一致,否则使用 NFS 作为备份介质时会出现权限问题导致备份失败。
这表明,admin
用户是用于运行 OceanBase 数据库的主要用户。
关于 secure_file_priv 和 Unix Socket 连接
在您提供的官方文档中,有如下描述:
如果当前的用户与 OBServer 启动的用户不同,则当前用户不会有 sql.sock 的权限,需要通过以下命令进行连接。
sudo -u <user of observer> obclient -S /home/admin/oceanbase/run/sql.sock -u******@obtenant -p******
这里的 <user of observer>
指的就是启动 OBServer 的用户,即 admin
用户。如果当前登录的操作系统用户不是 admin
用户,则需要通过 sudo -u admin
切换到 admin
用户来获取对 sql.sock
文件的访问权限。
总结
admin
用户,而不是操作系统的 root 用户。sudo -u admin
切换到 admin
用户,以确保能够正确访问 sql.sock
文件并执行相关操作。如果您还有其他疑问,请随时提出!
更多信息请查看: