sql >> データベース >  >> RDS >> PostgreSQL

Postgresビューで行レベルのセキュリティが有効になっていないのはなぜですか?

    基本的に、ビューの動作をさかのぼって変更することができなかったためです。 SECURITY INVOKERをサポートできるようにしたいと思います (または同等の)ビューの場合ですが、私が知る限り、そのような機能は現在存在しません。

    通常、行のセキュリティを使用して、ビュー自体へのアクセスをフィルタリングできます。

    ビューによってアクセスされるテーブルにも、行のセキュリティルールが適用されます。ただし、current_userは表示されます ビュークリエーターとして ビューは、ビューを作成/所有したユーザーの権限でテーブル(およびその他のビュー)にアクセスするためです。

    必要な機能の開発に介入して支援したい場合は、pgsql-hackersでこれを上げる価値があるかもしれません。そうでない場合は、pgsql-generalですか?

    とはいえ、アクセステーブルを作成ユーザーとして表示し、current_userを変更します。 したがって、カスタムGUCであるsession_userの使用を妨げることはありません。 、または行セキュリティポリシーの他のコンテキスト情報。 current_userに基づいてフィルタリングするのではなく、ビューで行セキュリティを使用できます。 。



    1. 複数の列にわたってゼロ以外の最小値を取得します

    2. 別のテーブルに行を挿入するようにMySQLトリガーをプログラムするにはどうすればよいですか?

    3. mysqlにwhere条件を無視させる

    4. mysqli-本当に$result->close();を実行する必要がありますか? &$ mysqli-> close();?