#author("2020-04-17T14:43:35+09:00","default:ryuichi","ryuichi")
#author("2020-04-17T14:44:01+09:00","default:ryuichi","ryuichi")
* 全テーブルをGRANTする [#wa53e4b9]

** GRANT ALL PRIVILEGES ON ALL TABLES [#s67dc74d]

 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO taro;

- publicスキーマ内の全テーブルの全権限をユーザtaroに与える。通常はpublicスキーマだけでよいはず


*** GRANT ALL PRIVILEGES ON DATABASE db_name について [#taf2037b]
 GRANT ALL PRIVILEGES ON DATABASE db_name TO user_name

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

*** 参考 [#q1929295]

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


** 古いバージョンのPostgreSQLの場合 [#y1e2a45f]

 #!/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

** 参考 [#l10123cd]

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


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