- - PR -
postgreSQL8でpublic権限を一気に剥奪する方法・・・
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-04 15:32
お世話になっております。
CentOS5+PostgreSQL8を使用しております。 データベース(testdb)内の全テーブルにpublic権限が割り当てられております。 テーブルがたくさんありますので、一気にpublic権限を全テーブルから削除する方法があればご教授しただければと思い、投稿させていただきました。 何卒ご教授賜りますようお願い申し上げます。 | ||||||||||||
|
投稿日時: 2008-02-04 19:22
まずデータベースへの権限は、ユーザーに割り当てられるものであって、データベース やテーブルに付くというものではありません。 で、権限の剥奪ですがPostgreSQLのスーパーユーザーでログインを行った後に、 下記のコマンドを実行するとテーブルへの権限が剥奪されます。 ※厳密にはオブジェクトはテーブルだけでは無いので、ビュー・関数等への権限も 剥奪するのが良いかも知れません。
テーブルが幾つあるか分かりませんが、テーブルが複数ある場合は上記のコマンドを テーブルの数だけ実行してください。 面倒であれば下記コードを実行されると、スキーマ名・テーブル名の一覧を作成します ので、テキスト出力後に権限を付加する(残す)ものを(テキストから)消した後で、 実行するとよいかと。 (ユーザー名とオブジェクト所有者名は自分で指定して下さい。)
PostgreSQLの詳細なバージョンが分からないので、[REVOKE ROLE]が使用出来るかは 分かりませんので上記の方法が妥当かと思います。 http://old.postgresql.jp/document/pg800doc/html/sql-commands.html 只、今回のスレでは全テーブルから権限の削除とありましたので、PostgreSQLの設定 ファイルである[pg_hba.conf]を修正し、該当ユーザーのログインを許可しない方法も あるかと思います。 (全テーブルへの権限の剥奪=SELECT文もNG=データベースへ接続させない) [ メッセージ編集済み 編集者: 上総 編集日時 2008-02-04 19:26 ] | ||||||||||||
|
投稿日時: 2008-02-06 08:16
ご回答ありがとうございます。
2つも方法をご提示くださいまして感謝しております。 解決いたしました。 今後ともよろしくお願い申し上げます。 |
1