Redshiftでtruncateできない

投稿者: | 2017年3月30日

Redshiftでテーブルをtruncateしようとしたらエラーが下記のようなエラーが発生しました。

database=> truncate member;
  ERROR:  must be owner of relation member

権限不足が問題と考え使用しているユーザーにTruncateができる権限を付与しました。
Truncateはテーブル作成・削除と同等な権限が必要なためユーザーをスーパーユーザーにしました。
pg_userテーブルを確認することでユーザーがスーパーユーザーか確認できます。
usesuperが「t」になっているユーザーがスーパーユーザーになります。
今回はtest_userの権限を変更します。

database=# select * from pg_user;
    usename     | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
----------------+----------+-------------+----------+-----------+----------+----------+-----------
 rdsdb          |        1 | t           | t        | t         | ******** | infinity |
 test_user      |      102 | f           | f        | f         | ******** |          |
 admin_user     |      100 | t           | t        | f         | ******** | infinity |

「alter user {ユーザー名} with createuser」のコマンドでスーパーユーザーを設定できます。

database=# alter user test_user with createuser;
ALTER USER

コマンド実行後にユーザーの状態を確認するとusesuperが「t」になっています。

systemtestsrsrs=# select * from pg_user;
    usename     | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
----------------+----------+-------------+----------+-----------+----------+----------+-----------
 rdsdb          |        1 | t           | t        | t         | ******** | infinity |
 test_user      |      102 | f           | t        | f         | ******** |          |
 admin_user     |      100 | t           | t        | f         | ******** | infinity |
(3 行)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA