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

Postgresユーザーを削除する方法(ドロップユーザー)

はじめに

データベースを管理するには、特にユーザーアカウントが不要になった場合は、ユーザーアカウントを削除する必要があります。不要なPostgresユーザーを削除することは、データベースのセキュリティ対策として不可欠です。このアクションにより、ハッカーが気付かない可能性のあるアクセスポイントも削除されます。

このチュートリアルでは、Postgresユーザーを複数の方法で削除する方法について説明します。

前提条件

  • sudo権限を持つコマンドラインまたはターミナルへのアクセス。
  • Postgresがインストールされています。できれば最新バージョンです。
  • Postgresユーザーを削除します。チュートリアルに従って、テスト目的でPostgresユーザーを作成します。

Postgresユーザーを削除する

PostgreSQLのユーザーには、デフォルトでログイン権限があります。ユーザーを削除するには2つの方法があり、どちらも CREATEROLEにアクセスする必要があります 権利。スーパーユーザーを削除するには、 SUPERUSER 特権は必須です。

postgres インストール中に作成されたユーザーには、デフォルトで必要なすべての権限があります。以下の例では、 postgresを使用しています。 PostgreSQLに接続するユーザー。

方法1:dropuserユーティリティを使用してPostgresユーザーを削除する

Postgresは、PSQLコマンドラインインターフェイスに接続せずにユーザーを削除するためのクライアントユーティリティを提供します。

dropuserを使用してPostgresのユーザーを削除するには 、ターミナルで次のコマンドを実行します:

sudo -u postgres dropuser <user> -e

または、コマンドを2つのステップに分割します。

1. postgresに切り替えます ユーザー(または適切な権限を持つ別のユーザー):

sudo su - postgres

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

dropuser <name> -e

どちらの場合も、Postgresはユーザーを削除します。

方法2:DROPUSERステートメントを使用してPostgresユーザーを削除する

Postgresデータベースからユーザーを削除するもう1つの方法は、PSQLステートメントを使用することです。

ユーザーを削除するには、次の手順に従います。

1.次のコマンドを使用して、ターミナル経由でPSQLクライアントに接続します。

sudo -u postgres psql

ターミナルがPSQLコンソールに変わります( postgres=#

2.すべてのユーザーと役割を次のように一覧表示します:

\du

削除するユーザーを見つけて、次の手順でその名前を使用します。

3.次のクエリを実行して、ユーザーを削除します。

DROP USER <name>;

または、ドロップする前にユーザーが存在するかどうかを確認するには、次のように入力します。

DROP USER IF EXISTS <name>;

クライアントは、役割が存在しない場合に通知します。

4.ユーザーリストをもう一度表示して、ユーザーがいなくなったことを確認します。

\du

ユーザーはロールのリストに含まれなくなります。この出力は、削除が成功したことを示します。

複数のPostgresユーザーを削除する

PSQLクライアントでは、一度に複数のPostgresユーザーを削除できます。以下の手順では、PostgreSQLクライアントに接続して複数のユーザーを削除する方法について説明します。

1.次のコマンドでPSQLクライアントに接続します:

sudo -u postgres psql

2.すべてのユーザーを次のように一覧表示します:

\du

削除するユーザーを見つけて、次の手順で名前を使用します。

3.個々のユーザーをコンマで区切って、複数のPostgresユーザーを削除します。

DROP USER [IF EXISTS] <name>, <name>, ... <name>;

このコマンドは、一度に複数の役割を削除します。 IF EXISTSを追加します 利用できないユーザーをスキップします。

4.ユーザーリストを再確認して、すべての役割が削除されていることを確認します。

\du

削除されたユーザーはリストに含まれなくなります。

依存関係のあるPostgresユーザーを削除する

依存関係のあるPostgresユーザーを削除しようとすると失敗し、エラーが表示されます。

ユーザーを安全に削除するには、次の手順を実行します。

1.エラーの詳細から別のユーザーにオブジェクトの所有権を割り当てます。たとえば、 myuserが所有するオブジェクトを転送するには postgres 、実行:

REASSIGN OWNED BY myuser TO postgres;

クエリにより、オブジェクトの所有権が postgresに変更されます ユーザー。

2.次のコマンドを使用して、ユーザーへのデータベースオブジェクト接続を削除します。

DROP OWNED BY myuser;

この手順では、ユーザーがオブジェクトに対して持っている特権もすべて削除されます。

3.現時点では、ユーザーには依存関係がありません。ユーザーを削除するには、次のコマンドを実行します:

DROP USER myuser;

依存関係が存在しないため、削除は成功します。

Postgresの役割を削除する

Postgresの役割を削除するには、PSQLクライアントで次のコマンドを実行します。

DROP ROLE [IF EXISTS] <name>;

DROP USER ステートメントはDROP ROLEのエイリアスです 。 Postgresユーザーは、 LOGINを持つロールです。 権限。したがって、両方の DROP USER およびDROP ROLE 互換性があり、ユーザーと役割の両方で機能します。


Ubuntu
  1. Linuxでユーザーグループを作成および削除する方法

  2. シェルスクリプトでルート権限を削除する方法は?

  3. ユーザーの名前を安全に変更する方法は?

  1. パスワードなしで別のユーザーアカウントに切り替える方法(su)

  2. Ubuntu、Debian、LinuxMintでユーザーを追加および削除する方法

  3. Debian9でユーザーを作成および削除する方法

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

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

  3. Linux で samba ユーザーを追加または削除する方法