sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLエラー:致命的:ロールのユーザー名が存在しません

    オペレーティングシステムユーザーを使用する postgres データベースを作成するには-データベースを設定していない限り 同じ名前のオペレーティングシステムユーザーに対応する必要な権限を持つロール(h9uest あなたの場合):

    sudo -u postgres -i
    

    ここまたはここで推奨されています。

    その後、再試行してください。 exitと入力します システムユーザーpostgresとしての操作が完了した場合 。

    または 単一のコマンドcreateuserを実行します postgresとして sudoを使用 、別の回答でdreesによって示されているように。

    重要なのは、同じ名前のデータベースの役割に一致するオペレーティングシステムのユーザーを使用して、 identを介してアクセスを許可することです。 認証postgres データベースクラスターを初期化したデフォルトのオペレーティングシステムユーザーです。マニュアル:

    データベースシステムをブートストラップするために、新しく初期化されたシステムには常に1つの事前定義された役割が含まれています。この役割は常に「スーパーユーザー」であり、デフォルトでは(initdbの実行時に変更されない限り) )データベースクラスターを初期化したオペレーティングシステムユーザーと同じ名前になります。通常、この役割にはpostgresという名前が付けられます。 。より多くの役割を作成するには、最初にこの最初の役割として接続する必要があります。

    非標準のユーザー名を使用したり、オペレーティングシステムのユーザーが存在しない奇妙な設定について聞いたことがあります。そこで戦略を適応させる必要があります。

    マニュアルでデータベースの役割とクライアント認証についてお読みください。



    1. SQLServerクエリでNULLを0に置き換える

    2. PostgreSQLのOracle高可用性の概念

    3. MySQLでRBACのデータベースを設計するためのガイド

    4. PostgreSQLでタイムスタンプを自動的に更新するにはどうすればよいですか?