Postgresql:由于权限无法创建表空间

时间:2018-02-28 10:30:00

标签: postgresql permissions postgresql-9.6 tablespace

我知道有十几次类似的问题,但我找不到适合我的答案。

我有一台Debian 9机器,刚从安装完成后我安装了Postgresql 9.6服务器。 我正在尝试创建一个新的表空间但它失败了。命令:

CREATE TABLESPACE newTableSPace LOCATION '/DATA/PostgreSQL/';

返回以下错误:

ERROR: could not set permissions on directory "/DATA/PostgreSQL": Permission denied
SQL state: 42501

因此,经过几次基础搜索后,我已经检查了以下几点:

  • 目录/ DATA / PostgreSQL存在
  • 其所有者/团体是postgres:postgres
  • 目录上的权利是770
  • SELinux显然没有安装(在Synaptic中安装了libselinux1,但是我尝试过的所有selinux命令都返回了我"命令未找到"。示例: selinuxenabled setenforce 0 )。

我的想法已经不多了。

有人有建议吗?

2 个答案:

答案 0 :(得分:2)

我刚刚找到了解决方案!

问题是用户postgres的权限不在目录/ DATA / PostgreSQL /上,而是在目录/ DATA上,它根本没有权限(它属于拥有权限770的当前用户)。

我已将此文件夹的权限更改为775.我想另一种方法是让用户postgres属于拥有DATA文件夹的组。

答案 1 :(得分:1)

嘿,我刚刚找到了一个可能的解决方案,那就是你必须让所有人都可以访问要写入的目录。

  1. 右键单击目录“ ... / targetDirectory”。
  2. 属性>安全>在组/用户名中单击“编辑”
  3. 添加另一个组或用户名,键入“所有人”,然后单击“确定”
  4. 如果您需要向该组添加更多权限,请检查权限,然后按“确定”。

您可以在以下视频中看到它:https://www.youtube.com/watch?v=FQzBgEFkdes

这对我创建表空间并将文件从一个目录复制到另一个目录很有用。

希望这会有所帮助。