私はpostgreSQL 9.1を使用しています。データベースに4つのロール/ユーザーを作成しました。それぞれが異なるテーブルに対して異なる権限を持っています。
誰かがログインしようとすると、phpは「ゲスト」(最初のロール/ユーザー)としてデータベースに接続します
$conn = pg_connect("host=localhost port=5432 dbname=mydb user=guest password=guest")or die('no connection, sorry');
ゲストは、ログインを確認するために「ユーザー」テーブルから「選択」することしかできません。ログインに成功した後、「users」テーブルの「level」という名前のintに従って、ユーザーをdbに再接続したいと思います。テーブルにある「レベル」が1の場合、ユーザーを「低」ロール/ユーザーとして再接続したい
$conn = pg_connect("host=localhost port=5432 dbname=mydb user=low password=low")or die('no connection, sorry');
「低」の役割/ユーザーは、一部のテーブルでのみ挿入および更新できます。
続いて、他の役割/ユーザーについて。users テーブルで見つかった「レベル」が 2 の場合は「mid」(挿入/更新/削除可能) として接続し、3 の場合は「high」(スーパーユーザー) として接続します。
簡単に言えば、「ゲスト」として接続して、ログインを「選択」して検証できるようにする>ログイン成功>「レベル」に従って、「低」として再接続するため、挿入/更新または「中」として挿入/更新/削除または「高」としてできるので、スーパーユーザー。
どうやってやるの?ログインに成功した後に再接続して、ユーザーが必要な権限を取得し、適切なアクションを実行できるようにするには?
ありがとうございました