3

私は内部ダッシュボード用のPostgreSQLユーザを作成しています。そこでは、dbへのユーザのアクセスをデフォルトで読み取り専用にします。ユーザへのアクセス方法PostgreSQLの読み込み専用ロールを設定することはできますか?

だから私は、最も簡単な事はただだと思う

など、私はいくつかの研究を行なったし、また、任意の新しいテーブルへのアクセス権を継承する読み取り専用ユーザーを作成するには少し複雑であると思われる、マテリアライズド・ビューを設定する:

ALTER USER readuser SET default_transaction_read_only = on; 

どのように私はこれをAnabilities PostgreSQLモジュールを使って設定しますか?

postgresql_privsまたはpostgresql_userモジュールを使用する必要があるかどうかはわかりません。私はpriv属性の異なる値を試してみましたが、何もできませんでした。

私は、ユーザーが実行時にトランザクションのタイプを変更することができるため、これは読み取り専用ではないことにご注意ください。しかし、セキュリティは問題ではないので、私のユースケースはうまくいくでしょう。無意識のユーザーが誤ってデータを変更しないようにしたいだけです。誰かがトランザクションを変更するのに十分な知識があれば、私はむしろ彼らが何をやっているのかを知っていると思って正当な理由があると思います。

答えて

0

postgresql_privsまたは postgresql_userモジュールを使用する必要があるかどうかはわかりません。私は、priv属性に対して異なる値の を試してみましたが、何もできませんでした。

あなたはPRIVSを取り消すことを試みたの?:

# REVOKE INSERT, UPDATE ON ALL TABLES IN SCHEMA public FROM reader 
# "public" is the default schema. This also works for PostgreSQL 8.x. 
- postgresql_privs: > 
    db=library 
    state=absent 
    privs=INSERT,UPDATE 
    objs=ALL_IN_SCHEMA 
    role=reader 

注:

を(参照なしに 存在とGRANT_OPTIONに状態を設定し、特定のオブジェクトのための唯一のGRANT OPTIONを取り消すには例http://docs.ansible.com/ansible/postgresql_privs_module.html)。

ロールRから権限を取り消す場合、このロールはまだ ロールに付与された権限を介してアクセスできることに注意してください。Rは、PUBLICを含む のメンバーです。

ロールRから特権を取り消すときは、ログインによって指定された ユーザーであることに注意してください。 Rに別のユーザー によって同じ権限が付与されている場合でも、Rは引き続きこれらの 権限を使用してデータベースオブジェクトにアクセスできます。

関連する問題