PostgreSQLでテーブルに対してのアクセス権限を設定する・GRANT,REVOKE

テーブルに対してアクセス権限の設定を行うGRANT, REVOKEの使用例を以下に記します。
データベース毎のなどのアクセス権限については、GRANTの構文を確認して実施してみてください。
基本的に多少の構文が変わるだけなので、本資料は役立つと思います。

使用したOSはCentOS6になります。
また、使用したPostgreSQLのバージョンは以下の通りです。

postgres=# select version();
                                                     version                                                      
------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit
(1 行)

スポンサーリンク

関連記事・関連資料

GRANT, REVOKEを使ってユーザにアクセス権限の設定を行う

以下にユーザ、データベースを新規に作成しGRANT,REVOKEを使ってアクセス権限を設定しテーブルを操作してみます。

GRANT, REVOKE実施前準備

以下のようにpostgresユーザでPostgreSQLに接続し、データベースfooの作成、テーブルt1の作成、ユーザsakuraを作成しました。

GRANTでアクセス権限を付与せずt1テーブルを操作してみる

新しく作成したsakuraでデータベースfooに接続しinsertをしてみると権限がないためエラーとなります。

GRANTでINSERT, SELECT権限を付与してみる

スーパーユーザpostgresにで再度fooデータベースに接続し、GRANTでINSERT, SELECTを付与してみます。

GRANTで全てのアクセス権限を付与する

上記の例では、SELECTとINSERTのみテーブルt1に対しアクセス権限をあたえました。
以下の例は、ALLを使って全ての権限を付与します。

sakura=arwdDxt/postgres の意味

sakura=以降の文字列について説明します。
各文字は以下の意味があります。

文字説明
aINSERT可能(apend)
rSELECT可能(read)
wUPDATE可能(write)
dDELETE可能(delete)
DTRUNCATE
xREFERENCES
tTRIGGER
/yyyyこの権限を付与したロール

REVOKEでアクセス権限を剥奪してみる

上記では、ユーザsakuraに対しアクセス権限を付与しました。
以下、付与した権限を剥奪してみます。

REVOKEでTRUNCATE権限を剥奪する

REVOKEで全てのアクセス権限を剥奪する

GRANT, REVOKEの構文確認

psqlで接続し\hを使うと簡単に構文を確認することができます。

\h コマンド

オプションが多数ありますので、必要に応じて設定してください。


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-12 (水) 12:53:39