本番データベースサーバーをテストするには、デフォルトのスーパーユーザーロール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
を終了するには 、次のコマンドを実行します:
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