A5:SQL Mk-2

開発のこと、日々のこと

pgsqlの閲覧専用ユーザーでデータタブのPK列が赤くならない

ホーム フォーラム A5:SQL Mk-2掲示板 pgsqlの閲覧専用ユーザーでデータタブのPK列が赤くならない

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #20182 返信
    jun1s
    ゲスト

    A5:SQL Mk-2 64bit edition Version 2.17.4
    データベース: PostgreSQL 14 又は PostgreSQL 15

    こんにちは。いつも大変便利に使わせて頂いております。

    これまでスーパーユーザー権限で作業を行っており、全てのテーブルへの全ての権限を持つユーザーを使ってA5:SQLでアクセスしている為、特に問題はありませんでした。

    しかし、閲覧用の「readonlyuser」というユーザーを作成し、それを使ってA5:SQLで接続したところ、「データ」タブに表示されるPK列の背景色が赤くなりません。
    正確には、左側のツリーのテーブル一覧から任意のテーブルをダブルクリックして「データ」タブを表示すると、PK列の背景色は赤くなりません(NOT NULL制約の為、背景が黄色く表示されます)。
    その後、「インデックス」タブを開き、該当のテーブルのインデックスが存在することを確認して、再び「データ」タブに戻ると、その時点からPK列の背景色が赤くなります。

    readonlyuserに、何か権限が足りていないのでしょうか。
    readonlyuserの作成用スクリプトは以下の通りです。

    ———————————————————-
    — ユーザーの作成
    CREATE USER readonlyuser WITH PASSWORD ‘pass’;

    — publicスキーマに対するUSAGE権限を与える
    GRANT USAGE ON SCHEMA public TO readonlyuser;

    — すべてのテーブルに対してSELECT権限を付与する
    GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonlyuser;

    — すべてのテーブルに対してREFERCENCES権限を付与する
    GRANT REFERENCES ON ALL TABLES IN SCHEMA public TO readonlyuser;

    — 今後新しいテーブルが作成されたときに自動的にSELECT権限を付与する
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonlyuser;

    ———————————————————-

    #20199 返信
    松原正和
    キーマスター

    jun1s さんこんにちは。
     
    調査したところ、読み取り専用ユーザーでは、なぜか information_schema.constraint_column_usage システムカタログが正常に取得できないようでした。information_schema.constraint_column_usage 内で使われている、pg_has_role(name,text) 関数が正しく値を返さなくなることまでは確認しましたが、どの権限が不足しているかまではよくわかりませんでした。
     
    ちなみに、最初にテーブルエディタを起動したときは背景赤にならず、インデックスタブを開いた後は背景赤になるのは、最初にテーブルエディタを開いたときに主キーが取得できないため、背景赤にならないが、インデックスタブを開いたタイミングで、「主キーが存在しないときにユニークインデックスを見つけるとそれを代替とする」処理が入っているためです。ちょっとこの処理(仕様)が妥当かは再考したいと思います。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
返信先: pgsqlの閲覧専用ユーザーでデータタブのPK列が赤くならない
あなたの情報:




コメントは受け付けていません。