1. ホーム
  2. postgresql

[解決済み] 新規インストール後にPostgresqlにログインして認証するにはどうしたらいいですか?

2022-12-11 01:57:06

質問

ミントubuntuにpostgres 8.4を新規にインストールしました。 postgres用のユーザを作成し、psqlを使用してログインするにはどうすればよいですか?

psqlと入力しても、次のように表示されるだけです。

psql: FATAL: Ident authentication failed for user "my-ubuntu-username"

どのように解決するのですか?

2つの方法があります。どちらもユーザーを作成する必要があります データベースを作成する必要があります。

デフォルトでは、psqlはユーザと同じ名前のデータベースに接続します。そのため "ユーザのデータベース" . そして、ユーザーが1つのデータベースしか必要としないのであれば、その慣習を破る理由はありません。私たちは mydatabase をデータベース名の例として使用します。

  1. createuserとcreatedbの使用 を使えば、データベース名を明示することができます。

    $ sudo -u postgres createuser -s $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
    

    おそらく、これを完全に省略して、代わりにすべてのコマンドをユーザー名のデフォルトにする必要があります。

    $ sudo -u postgres createuser -s $USER
    $ createdb
    $ psql
    
    
  2. SQL管理コマンドを使用し、TCP上でパスワードを使って接続します。

    $ sudo -u postgres psql postgres
    
    

    そして、psqlシェルで

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    
    

    すると、ログインできるようになります。

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    
    

    ポートがわからない場合は、以下のように実行することで、いつでも取得できます。 postgres のユーザとして、以下を実行することで常に取得できます。

    SHOW port;
    
    

    または

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    
    

参考までに postgres ユーザー

提案する NOT を修正することです。 postgres ユーザーを変更することはできません。

  1. 通常、OS からはロックされています。として OS にログインすることはできません。 postgres . として認証するためには、root を取得する必要があります。 postgres .
  2. 通常はパスワードで保護されておらず、ホスト オペレーティング システムに委譲されています。これは 良いことです。 . これは通常 postgres という名前でログインすることで、PostgreSQLではSQL Serverの SA に相当するもので、基礎となるデータファイルへの書き込みアクセスを持っていなければなりません。そして、それはつまり、通常、とにかく大混乱を引き起こす可能性があるということです。
  3. これを無効にすることで、名前の付いたスーパー ユーザーによる総当たり攻撃のリスクを排除できます。スーパー ユーザーの名前を隠したり、不明瞭にしたりすることには利点があります。