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

Postgresユーザーを作成する方法

はじめに

ユーザー特権と特権アクセス管理は、あらゆる種類のデータベースにとって重要なセキュリティの概念です。 PostgreSQLは、ロールと特権を介してアクセス制御を処理します。たとえば、LOGIN権限をロールに追加すると、ユーザーが生成されます。 Postgresは、ユーザーアカウントを作成および管理するためのいくつかの方法を提供します。

このチュートリアルでは、PostgreSQLデータベースのさまざまなユーザータイプを作成および設定する方法を示します。

前提条件

  • Postgresがインストールされています(UbuntuまたはWindowsのガイドに従ってください)。
  • sudo権限を持つ端末へのアクセス。
  • postgresユーザーへのアクセス。

PostgreSQLで新しいユーザーを作成する

PostgreSQLで新しいユーザーを作成する方法は2つあり、どちらの場合も postgresにアクセスする必要があります ユーザー。

方法1:createuserクライアントユーティリティを使用する

新しいユーザーを作成する最初の方法は、 createuserを使用することです。 クライアントユーティリティ。この方法では、PSQLコマンドラインインターフェイスへの接続を回避できます。

ユーザーを作成するには、ターミナルで次のコマンドを実行します。

sudo -u postgres createuser <name>

端末はメッセージを出力しません。サーバーメッセージをエコーするには、 -eを追加します タグ:

sudo -u postgres createuser -e <name>

例:

sudo -u postgres createuser -e john

または、コマンドを2つの部分に分割します。

1. postgresに切り替えます ユーザー:

sudo su - postgres

2. createuserを実行します コマンド:

createuser <name>

どちらの場合も、Postgresは自動的にユーザー(ログイン権限を持つロール)を作成します。

方法2:PSQLを使用する

PostgreSQLで新しいユーザーを作成する2つ目の方法は、インタラクティブなPSQLシェルを使用することです。

1. postgresに切り替えます ユーザーと次のコマンドでインタラクティブ端末を起動します:

sudo -u postgres psql

ターミナルセッションがpostgres =#に変わります 、Postgresシェルへの接続が成功したことを示します。

2.次のステートメントを使用して、ユーザーを作成します。

CREATE USER <name>;

例:

CREATE USER mary;

コマンドを実行すると、 CREATE ROLEが出力されます。 コンソールに。その理由は、 CREATE USER queryは、次のコマンドのエイリアスです。

CREATE ROLE <name> WITH LOGIN;

どちらのクエリでも同じ結果が得られます。

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

PostgreSQLでスーパーユーザーを作成するには、スーパーユーザーの役割が必要です。

警告: データベースのスーパーユーザーはすべてのチェックをバイパスしますが、これはセキュリティの観点から危険です。このアクションは慎重に使用し、どうしても必要な場合を除いて、スーパーユーザーアカウントでの作業は避けてください。

PostgreSQLでスーパーユーザーを作成する方法は2つあります。

1. -superuser を追加して、クライアントユーティリティからスーパーユーザーの役割を作成します タグ:

sudo -u postgres createuser --superuser <name>

または、短縮タグ -sを使用します -superuserの代わりに

sudo -u postgres createuser -s <name>

エラーが発生した場合、またはユーザーがすでに存在する場合、端末はメッセージを出力します。成功した場合、メッセージは表示されません。

2.または、 CREATE USERを使用します PSQLステートメント:

CREATE USER <name> SUPERUSER;

CREATE USER ステートメントは、次のステートメントのエイリアスです:

CREATE ROLE <name> LOGIN SUPERUSER;

CREATE ROLE ステートメントには、 LOGINを追加する必要があります ユーザーをエミュレートする権限。

ユーザーのパスワードを作成する

ブルートフォース攻撃を防ぐために、すべてのデータベースユーザーは強力なパスワードを持っている必要があります。 PostgreSQLには、パスワードを使用してユーザーを作成するための2つの方法があります。

警告: 2つの方法のうち、最初の方法が優先され、より安全です。

1. createuserを使用します クライアントユーティリティを追加し、 -pwpromptを追加します パスワード作成プロンプトを自動的に呼び出すオプション:

sudo -u postgres createuser <name> --pwprompt

省略形は-Pです。 タグ:

sudo -u postgres createuser <name> -P

端末は、パスワードを2回入力するように求めます。パスワード自体または長さは暗号化され、サーバーとの通信時に非表示になります。

2. PSQLを使用して、パスワードを持つユーザーを作成します。

CREATE USER <name> WITH PASSWORD '<password>';

ユーザーがすでに存在する場合は、 ALTER USERを使用してパスワードを追加します

ALTER USER <name> WITH PASSWORD '<password>';

PSQLによるパスワード管理には、次の3つのセキュリティ脆弱性があります。

  • パスワードが画面に表示されます。
  • コマンド履歴を表示すると、パスワードが公開されます。
  • 情報は暗号化なしでクリアテキストとして送信されます。

この方法は注意して使用してください。

ユーザーに権限を付与する

デフォルトでは、新規ユーザーにはログイン以外の権限はありません。ユーザーの作成時に権限を追加するには、 createuserを実行します 次の形式のクライアントユーティリティ:

createuser <option> <name>

PSQLで同じことを行うには、次を実行します。

CREATE USER <name> WITH <option>;

以下は、両方の方法で一般的に使用されるオプションの表です。

オプションの構文 PSQL 説明
-s
-スーパーユーザー
SUPERUSER スーパーユーザー権限を追加します。
-S
-no-superuser
NOSUPERUSER スーパーユーザー権限なし(デフォルト)。
-d
-createdb
CREATEDB ユーザーがデータベースを作成できるようにします。
-D
-no-createdb
NOCREATEDB データベースの作成は許可されていません(デフォルト)。
-r
-createrole
CREATEROLE ユーザーが新しい役割を作成できるようにします。
-R
-no-createrole
NOCREATEROLE ロールの作成は許可されていません(デフォルト)。
-i
-継承
継承 ロールの権限を自動的に継承します(デフォルト)。
-I
-継承なし
NOINHERIT 役割の特権を継承しないでください。
-l <​​/ code>
-ログイン
ログイン ユーザーがロール名(デフォルト)でセッションにログインできるようにします。
-L
-ログインなし
NOLOGIN ロール名でセッションにログインすることは許可されていません。
-レプリケーション レプリケーション ストリーミングレプリケーションの開始とバックアップモードのアクティブ化/非アクティブ化を許可します。
-no-replication NOREPLICATION ストリーミングレプリケーションまたはバックアップモードを開始することは許可されていません(デフォルト)。
-P
-pwprompt
PASSWORD'' パスワード作成プロンプトを開始するか、提供されたパスワードをユーザーに追加します。このオプションを使用してパスワードなしのユーザーを作成することは避けてください。
/ パスワードNULL 具体的にはパスワードをnullに設定します。このユーザーのすべてのパスワード認証は失敗します。
-c
-connection-limit =
接続制限<番号> ユーザーの接続の最大数を設定します。デフォルトは無制限です。

たとえば、ロールとデータベースの作成権限を持つユーザーを作成し、 -eを追加します 結果をエコーするタグ:

sudo -u postgres createuser -d -r -e <name>

または、同等のPSQLを使用します:

CREATE USER <name> WITH CREATEROLE CREATEDB;

どちらの場合も、指定された特権は新しいユーザーに自動的に付与されます。

PostgreSQLユーザーをインタラクティブに作成する

インタラクティブなユーザー作成は、クライアントユーティリティでのみ使用できる実用的なオプションです。ユーザーをインタラクティブに作成するには、次のコマンドを実行します。

sudo -u postgres createuser --interactive

このコマンドは、次の質問を自動的に実行します。

  • 役割の名前。
  • 役割がスーパーユーザーであるかどうか。
  • ユーザーがデータベースの作成を許可されている場合。
  • ユーザーが他の役割を作成することを許可されている場合。

はいと答えます( y )スーパーユーザーの質問に自動的に追加して、「データベースの作成」と「役割の作成」の権限を追加し、プロンプトを終了します。

PostgreSQLのすべてのユーザーを一覧表示する

データベースでのユーザー管理に不可欠なツールは、すべてのユーザーをそれぞれの役割と特権で一覧表示することです。

PostgreSQLのすべてのユーザーを一覧表示するには、次の手順を実行します。

1.postgresユーザーとしてPSQLプロンプトに接続します。

sudo -u postgres psql

2.次のコマンドを使用して、すべてのユーザーを一覧表示します。

\du

出力には、ロール名、属性(特権)、およびユーザーのグループを含むテーブルが表示されます。各役割の説明を表示するには、プラス( + )を追加します )記号:

\du+

出力には、該当する場合は役割の説明を含む追加の列が表示されます。


Ubuntu
  1. Ansibleを使用してLinuxユーザーを作成する方法

  2. Ubuntu16.04でユーザーを作成および削除する方法

  3. RockyLinux8でSudoユーザーを作成する方法

  1. DebianでSudoユーザーを作成する方法

  2. Linuxでユーザーを作成する方法[ユーザー管理]

  3. 非ログイン ユーザーを作成するにはどうすればよいですか?

  1. Centos – CentosでSftpユーザーを作成する方法は?

  2. CentOS7でsudoユーザーを作成する方法

  3. スクリプトを使用して crontab を作成する方法