GNU/Linux >> Linux の 問題 >  >> Linux

PostgreSQLでロールを作成および削除する

本番データベースサーバーをテストするには、デフォルトのスーパーユーザーロールisriskyとしてデータベースで定期的に作業するため、追加のロールを作成する必要があります。

この記事では、psqlを使用して、PostgreSQL®で追加のロールを作成する方法を説明します。 クライアントコマンドまたはシェルコマンド。 Linux®ユーザー、 postgresを使用する必要があります ®、両方の方法で。

Linuxクレデンシャルを使用してインスタンスにログインし、次のコマンドを実行して、ユーザーを postgresに切り替えます。 ユーザー:

# sudo su - postgres

psqlコマンドを使用する

psqlを使用してユーザーを作成または削除するには、次の手順を使用します クライアント。

psqlと接続

postgresでpsqlclientを使用してデータベースサーバーに接続します 役割:

postgres@demo:~$ psql -U postgres
...
Welcome to psql 8.3.6, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=#
役割を作成する

psqlに接続した後 クライアントの場合、次のコマンドを実行して、LOGINを持つ役割を作成します 属性と空でないMD5暗号化パスワード:

postgres=#CREATE ROLE demorole1 WITH LOGIN ENCRYPTED PASSWORD 'password1';

:SQLステートメントの最後にある末尾のセミコロン(;)が必要です。一重引用符('')はパスワードの一部ではありませんが、パスワードを囲む必要があります。

次のコマンドを使用して、ロールが正常に作成されたことを確認します。

postgres=# \du
                               List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
 demorole1 | no        | no          | no        | no limit    | {}
 postgres  | yes       | yes         | yes       | no limit    | {}
(2 rows)
役割を削除する

役割が不要になったら、次のコマンドを使用して役割を削除(削除または削除)できます。

postgres=# DROP ROLE demorole1;

次に、\duで確認します コマンドを実行すると、demorole1が表示されます。 はリストされなくなりました。

スーパーユーザーを作成する

postgresserverの管理を信頼するデータベースプログラマーがいる場合など、場合によっては、追加のスーパーユーザーロールを作成する必要があります。

スーパーユーザーを作成するには、次のコマンドを実行します。

postgres=#CREATE ROLE mysuperuser2 WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'mysuperpass2';

このコマンドは、LOGINを設定します 属性を指定し、空でないパスワードを指定します。これらの要素は、データベースへのローカル接続とリモート接続にこのスーパーユーザーロールを使用する場合に重要です。

終了psql

psqlを終了するには 、次のコマンドを実行します:

postgres=# \q
...
postgres@demo:~$
シェルコマンドを使用する

CREATEuserおよびDROPSQLステートメントのラッパーであるcreateuserおよびdropusershellコマンドを使用して、データベースの役割を作成および削除できます。標準のpostgresインストールにはこれらのコマンドが含まれています。

createuser

次のコマンドを実行して、LOGINを持つ非スーパーユーザーロールを作成します 属性:

postgres@demo:~$ createuser -PE demorole2

Enter password for new role:
Enter it again:
...
postgres@demo:~$

-P フラグを押すと、新しい役割のパスワードを設定するように求められ、-E flagは、パスワードをMD5暗号化文字列として保存することを示します。

ロールの作成を確認するには、psqlに接続します 次のコマンドを実行します:

postgres=# \du
                               List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
 demorole2 | no        | no          | no        | no limit    | {}
 postgres  | yes       | yes         | yes       | no limit    | {}
(2 rows)

dropuser

次のコマンドを実行して、役割を削除します。

postgres@demo:~$ dropuser -i demorole2
...
Role "demorole2" will be permanently removed.
Are you sure? (y/n) y
...
postgres@demo:~$

-i フラグは確認プロンプトを提供します。これは、破壊的な可能性のあるコマンドを実行する場合の安全対策として適しています。

スーパーユーザーを作成する

postgresserverの管理を信頼するデータベースプログラマーがいる場合など、場合によっては、追加のスーパーユーザーロールを作成する必要があります。

スーパーユーザーを作成するには、次のコマンドを実行します。

postgres@demo:~$ createuser -sPE mysuperuser

Linux
  1. CentOSへのPostgreSQLとphpPgAdminのインストール

  2. Terraformを使用してAWSでIAMロールを作成する方法

  3. BusyBox で起動スクリプトを作成および制御する

  1. RHCE Ansibleシリーズ#9:Ansibleの役割

  2. PostgreSQLでデータベースをバックアップおよび復元する方法

  3. PostgreSQLでロールを作成および削除する

  1. 例を含むPostgreSQLドロップデータベース

  2. Cassandraでテーブルを作成、削除、変更、および切り捨てる方法

  3. PostgreSQLでデータベースを作成する方法