ホーム › フォーラム › A5:SQL Mk-2掲示板 › pgsqlの閲覧専用ユーザーでデータタブのPK列が赤くならない
-
投稿者投稿
-
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;———————————————————-
松原正和キーマスターjun1s さんこんにちは。
調査したところ、読み取り専用ユーザーでは、なぜか information_schema.constraint_column_usage システムカタログが正常に取得できないようでした。information_schema.constraint_column_usage 内で使われている、pg_has_role(name,text) 関数が正しく値を返さなくなることまでは確認しましたが、どの権限が不足しているかまではよくわかりませんでした。
ちなみに、最初にテーブルエディタを起動したときは背景赤にならず、インデックスタブを開いた後は背景赤になるのは、最初にテーブルエディタを開いたときに主キーが取得できないため、背景赤にならないが、インデックスタブを開いたタイミングで、「主キーが存在しないときにユニークインデックスを見つけるとそれを代替とする」処理が入っているためです。ちょっとこの処理(仕様)が妥当かは再考したいと思います。 -
投稿者投稿