- 新しいユーザーの作成
- 既存のユーザー権限の表示
- 既存のユーザー権限の変更
-
SUPERUSER
の割り当て 許可 - 権限の取り消し
-
PostgreSQL内でのユーザー権限の変更は、実際に必要な許容粒度に応じて、かなり単純なものから非常に複雑なものまでさまざまです。ただし、ほとんどの場合、これは強力な ALTER USER
ユーザーがログインできるようにすること、データベースを作成すること、役割を管理すること、さらには SUPERUSER
になることまで、すべてを実行するために使用する必要があるコマンド アカウント。
ALTER USER
の威力について簡単に説明します コマンドを使用すると、必要に応じてさまざまな権限の割り当てと削除を簡単に実行できます。
変更に入る前に ユーザー権限については、新しいユーザーアカウント(一般に ROLE
と呼ばれます)を確立する必要があります )いじります。
まず、既存のすべてのユーザーを一覧表示します。
=# SELECT usename FROM pg_user;
usename
----------
postgres
(1 row)
デフォルトでは、 postgres
通常、存在する唯一のユーザーであるため、 librarian
の新しいユーザーを作成します。 ライブラリ
を制御する データベース。これは、 CREATE USER
を使用して実行できます。 コマンド:
=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
usename
-----------
postgres
librarian
(2 rows)
多くの場合、システム内のユーザーに割り当てられている既存のアクセス許可を調べると便利です。これは、 \ du
を使用して簡単に実行できます。 psql
からのコマンド プロンプト:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
新しいlibrarian
を追加したにもかかわらず、はっきりとわかります。 ユーザー、いくつかの権限を割り当てる必要があります。
これで、ライブラリアン
ユーザーが存在する場合は、 ALTER USER
の使用を開始できます ライブラリアン
に付与された権限を変更する 。
ALTER USER
の基本フォーマット ユーザーの名前(または ROLE
)その後に一連の options
が続きます どの許容変更を行うかをPostgreSQLに通知するには:
=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
これらのオプションの範囲はCREATEDB</ code> 、
CREATEROLE
、 CREATEUSER
、さらには SUPERUSER
。さらに、ほとんどのオプションには否定的な対応物もあり、拒否したいことをシステムに通知します その特定の権限のユーザー。これらのオプション名は、対応する割り当てと同じですが、接頭辞として NO
が付けられます。 (例: NOCREATEDB
、 NOCREATEROLE
、 NOSUPERUSER
。
SUPERUSER
の割り当て 許可
これで、ユーザーの作成と ALTER USER
の使用の基本を理解できました。 権限を変更するには、 SUPERUSER
を使用するだけです。 ライブラリアン
を割り当てるオプション ユーザーSUPERUSER
許可:
=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE
案の定、今すぐ許可リストを表示すると、ライブラリアン
が表示されます 新しいSUPERUSER
があります 必要な許可:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | Superuser | {}
postgres | Superuser, Create role, Create DB, Replication | {}
間違えて後で取り消す権限を割り当てた場合は、同じ ALTER USER
を発行するだけです。 コマンドを追加しますが、 NO
を追加します 取り消される許容オプションの前のプレフィックス。
たとえば、 SUPERUSER
を削除できます ライブラリアン
から そのようなユーザー:
=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}