postgres からルートに戻ることができません: 無効な postgres パスワードを入力するよう強制されます

postgres からルートに戻ることができません: 無効な postgres パスワードを入力するよう強制されます

Ubuntu に postgres をインストールしたところ、postgres ユーザーに切り替わりました。psqlデータベースを開いて作成した後、root に戻すことにしました。しかし、次の操作は実行できません:

sudo su - 

その結果、私に尋ねられる

[sudo] password for postgres:

入力してみたところ

Sorry, try again

そこで、postgresのパスワードを変更してみることにしました。この答え:

ALTER USER postgres WITH PASSWORD 'postgres';

一見うまくいったように見えますが、再度ルートに切り替えようとした後も、まだできません。

答え1

どうやらあなたは2つのことを混同しているようです:

  • postgresシステムユーザー
  • postgresSQLデータベースユーザー

両者の唯一の関係は、PostgreSQLのインストール時に、データベースユーザーpostgres仲間認証方法: データベースサーバーは、システムデータベース ユーザーとしてデータベースへのアクセスを要求するユーザーpostgresも と呼ばれますpostgres。また、データベース サーバー自体はシステム ユーザーとして実行されますpostgres

データベースからシステムを変更することはできません。データベースアカウントにパスワードを与えても、システムユーザーpostgres須藤権限があり、パスワードが無効になっているため、デフォルトでは root のみが使用できます (ただし、その逆はできません)。

したがって、 になりたい場合root、システム アカウントからはこれを行うことはできませんpostgres。これは良いことです。データベース サーバー (そのプロセスもシステム ユーザー として実行されています) が侵害された場合、そこからアクセスpostgresをエスカレートする方法はありません。root

postgreSQL のインストールに使用したアカウントに再度ログインします。アカウントは直接ログインするかroot(Ubuntu では通常実行されません)、システムのインストール時に設定した uid 1000 のユーザー (Ubuntu では通常実行) のいずれかで、Ubuntu ではデフォルトでログインが許可されていますsudo su -

答え2

postgres ユーザーを終了する場合は、「exit」と入力するだけです。

ルートユーザーに戻ります

関連情報