- 追加された行はこの色です。
- 削除された行はこの色です。
#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
- PostgreSQL8.5からは GRANT ALL ON DB_NAME.* みたいに出来るようになるらしい。
** 参考 [#l10123cd]
https://www.postgresql.jp/document/9.0/html/sql-grant.html