一連のアプリケーションのすべてのテーブルを含むデータベース (DB_data と呼びましょう) を使用しています。アップグレード中のダウンタイムを最小限に抑えるために、DB_data の各テーブルのビューを持つファサード データベース (DB_facade と呼びましょう) が作成されました。また、これらのビューに対して機能するすべての関数とストアド プロシージャも含まれています。
DB_data のセキュリティをロックダウンしようとして、DB_data のすべてのユーザーのすべてのテーブルに対して DENY を実行しました。これらのユーザーはすべて、ビューへのアクセス許可を持つ DB_facade にも作成されています。
ここでの問題は、複数データベースの所有権チェーンが原因で、DB_data の DENY が DB_facade の GRANT をオーバーライドしていることです。
セキュリティ上の問題が発生する可能性があるため、これらの両方のデータベースで所有権の連鎖を有効にすることは避けたいと思います (ただし、最初のテストでは、アクセスの問題は修正されたように見えました)。また、アプリケーションへの影響を最小限に抑えようとしているため、ストアド プロシージャを介してすべてのアクセスを要求したり、(たとえば) 証明書を使用したりすることはできません。
これを処理する方法について他に何か提案はありますか?
ありがとう!