我创建了一个AWS RDS postgres实例。创建时,我被提示创建用户。没有理由在AWS RDS中创建具有位置的表空间?原因是在创建数据库时,我希望数据库转到我创建的表空间。当我运行以下命令时
CREATE USER test;
CREATE TABLESPACE test OWNER test LOCATION '/test_data';
CREATE DATABASE test WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = test;
ERROR: permission denied for tablespace test
我使用test_admin用户登录postgres来运行上述命令。 test_admin是我在RDS实例配置期间创建的帐户。这是我上面用来创建所有数据库对象的唯一帐户吗?
答案 0 :(得分:0)
您是否希望数据库的所有者也是test
?如果是,请将其添加到CREATE DATABASE...
。否则,在尝试创建test_admin
表空间之前,您可能需要授予test
用户权限。
答案 1 :(得分:0)
postgres RDS中的表空间位于/rdsdbdata/db/base/tablespace/
我认为这个问题已经在这里回答了 Create tablespace on PostgreSQL RDS