ホームページ >バックエンド開発 >Python チュートリアル >スーパーユーザー アクセスを必要とせずに PostgreSQL でデータベースを作成し、常にデータベースに接続する方法
このガイドでは、非スーパーユーザーとして PostgreSQL にデータベースを作成し、必要な権限を割り当て、確実にデータベースを作成する手順を説明します。スーパーユーザーとしてログインする必要なく、新しく作成したデータベースに常に接続できます。
これは、あらゆるアクションに対して管理者権限を必要とせずに、PostgreSQL で独自のデータベースを管理したい開発者やユーザーにとって便利です。
1.新しいデータベースを作成します (tortoise-demo)。
2.データベースを作成してアクセスするための権限を非スーパーユーザー ロール (testuser) に付与します。
3.データベース (tortoise-demo) にシームレスに切り替えます。最初にスーパーユーザーに切り替える必要はありません。
4.testuser としてログインするときに常に tortoise-demo に自動的に接続するように PostgreSQL を構成します。
非スーパーユーザーとしてデータベースを作成する前に、自分の役割 (この場合は testuser) にデータベースを作成するための適切な権限があることを確認する必要があります。
デフォルトでは、新しく作成された PostgreSQL ロールにはデータベースを作成する権限がありません。 スーパーユーザー (postgres など) としてログインしている場合は、testuser ロールに必要な権限を付与できます。
1.スーパーユーザーとしてログインします (例: postgres):
psql -U postgres
2.CREATEDB 権限を testuser に付与します:
次の SQL クエリを実行して、testuser が新しいデータベースを作成できるようにします:
GRANT CREATEDB TO "testuser";
これにより、testuser はスーパーユーザー権限を必要とせずにデータベースを作成できるようになります。
3.スーパーユーザーセッションを終了します:
\q
testuser ロールに CREATEDB 権限が与えられたので、testuser としてログインして新しいデータベースを作成できます。
testuser ロールとしてログインするには、次のコマンドを実行します:
psql -U "testuser" -d postgres -W
ログインしたら、新しいデータベース tortoise-demo を作成します:
CREATE DATABASE "tortoise-demo";
このコマンドは、tortoise-demo という新しいデータベースを作成します。
testuser がデータベースを完全に制御できるようにするには、データベースの所有権を testuser に割り当てることができます。
psql -U postgres
このステップはオプションですが、これにより testuser ロールが tortoise-demo データベースに対する完全な管理制御を持つことが保証されます。
データベースを作成した後、新しく作成したデータベース (tortoise-demo) に切り替えて、作業を開始することもできます。
tortoise-demo に接続するには、次のコマンドを実行します。
GRANT CREATEDB TO "testuser";
c コマンドは、現在のセッションを tortoise-demo データベースに切り替えます。この時点から、SQL クエリを実行してデータベースを管理できるようになります。
tortoise-demo データベースの作成と切り替えが正常に完了したので、次のステップは このプロセスを自動化することです。具体的には、folasayoolayemi としてログインするたびに、明示的に切り替える必要がなく、自動的に tortoise-demo データベースに接続されるように PostgreSQL を構成したいと考えています。
tortoise-demo データベースに常に接続できるようにする簡単な方法の 1 つは、PGDATABASE 環境変数を設定することです。この変数は、接続時にデフォルトでどのデータベースを使用するかを PostgreSQL に指示します。
1.現在のセッションの PGDATABASE を設定します:
現在のターミナルセッションで次のように環境変数を設定できます:
\q
これにより、その後実行する psql コマンドはデフォルトで自動的に tortoise-demo に接続されます。
2.変更を永続的にする:
この変更をターミナル セッション間で永続的にするには、export コマンドをシェルの構成ファイル (.bashrc、.zshrc など) に追加します。
たとえば、bash を使用している場合は、~/.bashrc ファイルに次の行を追加します。
psql -U "testuser" -d postgres -W
次に、次を実行します:
CREATE DATABASE "tortoise-demo";
これにより、新しいターミナル セッションを開くたびに、データベースを指定することなく PostgreSQL が自動的に tortoise-demo に接続するようになります。
PGDATABASE 環境変数を使用したくない場合は、psql 接続コマンドでいつでもデータベース名を指定できます。
ALTER DATABASE "tortoise-demo" OWNER TO "testuser";
この方法では、接続するたびに tortoise-demo データベースを直接指定するため、構成を変更する必要がなくなります。
1.CREATEDB 権限を付与: testuser ロールにデータベースを作成するために必要な権限があることを確認します。
2.データベースの作成: testuser としてログインし、tortoise-demo データベースを作成します。
3.データベースに切り替えます: c コマンドを使用して tortoise-demo.
に切り替えます。
4.データベース接続の自動化: デフォルトで常に tortoise-demo に接続するように PGDATABASE 環境変数を設定するか、psql コマンドでデータベース名を明示的に指定します。
これらの手順に従うことで、新しいデータベースを作成する必要があるたびにスーパーユーザー権限を必要とせずに、非スーパーユーザーとして PostgreSQL で独自のデータベースを作成および管理できます。特定のデータベースに自動的に接続する機能により、特に特定のプロジェクトやアプリケーションを扱う開発者にとって、ワークフローがより効率的になります。
読んでいただきありがとうございます...
コーディングを楽しんでください!
以上がスーパーユーザー アクセスを必要とせずに PostgreSQL でデータベースを作成し、常にデータベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。