2017-11-07 114 views
0

私はAWS RDS postgresインスタンスを作成しました。作成時に私はユーザーを作成するように求められました。 AWS RDSに場所を持つ表領域を作成する理由はありませんか?理由は、データベースを作成するときに、私が作成したテーブルスペースにデータベースを移動させたいからです。私が下記のコマンドを実行するときAWS RDS PostgreSQLテーブルスペース

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インスタンスのプロビジョニング中に作成したアカウントです。それは私がその時点からすべてのDBオブジェクトを作成するために使用するべき唯一のアカウントですか?

+2

本当にRDSマシンのルートディレクトリに書き込めると思いますか? – stdunbar

+1

AWS RDSはパス/ test_data /を指定してもデフォルトパスを追加します。これは私がテーブルスペースで見るものです。/rdsdbdata/db/base/tablespace/test_data – varun7447

答えて

0

データベースの所有者もtestにしますか?その場合は、CREATE DATABASE...に追加してください。それ以外の場合は、test表領域のユーザー権限をtest_adminに付与してから作成する必要があります。

関連する問題