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

新規インストール後にPostgresqlにログインして認証するにはどうすればよいですか?

    使用できる方法は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 ユーザー

    しないことをお勧めします postgresを変更する ユーザー。

    1. 通常、OSからロックされています。 postgresとしてオペレーティングシステムに「ログイン」することは想定されていません。 。 postgresとして認証するためのrootが必要です 。
    2. 通常、パスワードで保護されておらず、ホストオペレーティングシステムに委任されます。これは良いことです 。これは通常、postgresとしてログインすることを意味します これは、SQLServerのSAに相当するPostgreSQLです。 、基になるデータファイルへの書き込みアクセス権が必要です。そして、それはあなたが通常とにかく大混乱を壊すことができることを意味します。
    3. これを無効にしておくことで、指定されたスーパーユーザーを介したブルートフォース攻撃のリスクを排除できます。スーパーユーザーの名前を隠したり隠したりすることには利点があります。


    1. generate_seriesを使用してPostgreSQLで欠落している日付を埋める方法

    2. 「ALTERTABLESWITCHステートメントが失敗しました」を修正する方法メッセージ4982(SQL Server)

    3. Hibernateでの同時更新処理

    4. cPanelでMySQLデータベースユーザーを削除する方法