読者です 読者をやめる 読者になる 読者になる

約束の地

あの日あの時のキャロの想い出

PostgreSQL でユーザを追加して権限を与える方法

Linux プログラミング

概略

  • 2段階の操作が必要
    • まずユーザ(ロール)を作成する
    • その後に権限を付与する

PostgreSQL にログインする

  • -d db_nameの名称には、ユーザ(ロール)や権限を扱いたいデータベース名を指定すること
$ psql -U postgres -d postgres                                                            
psql (9.6.1)
"help" でヘルプを表示します.

postgres=#

ユーザ(ロール)を作成する

postgres=# CREATE ROLE username WITH LOGIN PASSWORD 'password';
  • この段階でたとえば以下のデータベースレベルの権限が付与できる
    • SUPERUSER / NOSUPERUSER
    • CREATEDB / NOCREATEDB
    • CREATEROLE / NOCREATEROLE
    • CREATEUSER / NOCREATEUSER
    • LOGIN / NOLOGIN

権限を付与する

postgres=# GRANT 権限名 ON schema_name.table_name TO username;
  • 主な権限名は以下のとおり

    • SELECT
    • INSERT
    • UPDATE
    • DELETE
    • CREATE
    • USAGE
  • 未解決点

    • 既に存在するテーブルごとにしか権限を与えられない?
    • スキーマ内のどこか一つのテーブルに権限を与えると、同じデータベース上の全てのスキーマ内のテーブルについて SELECT の権限が付与される?

権限の剥奪(参考)

postgres=# REVOKE 権限名 ON schema_name.table_name FROM username;

ユーザ(ロール)の変更(参考)

postgres=# ALTER ROLE usename WITH PASSWORD 'new_password';

ユーザ(ロール)の削除(参考)

postgres=# DROP ROLE username;

ユーザ一覧の確認をする(参考)

postgres=# \du

ユーザの権限の確認をする(参考)

postgres=# \dp

参考にしたサイト

Powered by はてなブログ