全テーブルをGRANTする

GRANT ALL PRIVILEGES ON ALL TABLES

 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO taro;
  • publicスキーマ内の全テーブルの全権限をユーザtaroに与える。通常はpublicスキーマだけでよいはず

GRANT ALL PRIVILEGES ON DATABASE db_name について

 GRANT ALL PRIVILEGES ON DATABASE db_name TO user_name
  • このコマンドはdb_nameへログインする接続権限を与える。テーブルにアクセスする権限ではない
  • したがって、テーブルへのアクセス権限がなければ、SELECT * FROM table_name すると ERROR: permission denied for relation table_nameというエラーになる

参考

https://stackoverflow.com/questions/15520361/permission-denied-for-relation

古いバージョンのPostgreSQLの場合

 #!/bin/bash
 for table in `echo '\dtvs' | psql -t -A -F ',' DB_NAME | cut -f 2 -d ','`
 do
    echo "GRANT ALL ON TABLE $table to public;"
    echo "GRANT ALL ON TABLE $table to public;" | psql DB_NAME
 done

参考

https://www.postgresql.jp/document/9.0/html/sql-grant.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2020-04-17 (金) 14:44:01