セキュリティ強化のため、Oracleデータベース・ユーザーからすべてのシステム権限を削除します。今、このユーザーはONLY次のシステム権限を持っていますOracleセキュリティ - ユーザーがDROP TABLEから独自の表を保護する方法
- はSESSION
- UNLIMITED TABLESPACE
のCREATE私は、ユーザーが文句を言わない任意のDDLコマンドを行うことができることを期待していました。しかし私の驚いたことに、ユーザーは独自のスキーマを作成することはできませんが、独自のスキーマでDROP TABLEを実行できます。
Oracle documentationは、DROP TABLEの前提条件は「自分のスキーマ内にあるか、またはDROP ANY TABLEシステム権限が必要です」と述べています。それだけ!!!私はOracleのセキュリティロジックを理解していませんが、ユーザーが自分のテーブルを削除するのを防ぐ方法はありますか?
代わりに、別のユーザーを作成してアプリケーションを実行し、オブジェクトアクセスを許可することもできます。これは、潜在的な問題があるので避けたいと思います。
あなたは無制限のタブレットがユーザーを許可するのに良いことではないことに気付きますか?これは、アプリケーションによって使用されるべきではないSYSTEMやSYSAUXなどの表領域を含むすべての表領域に対して権限を付与するためです。物事をロックダウンする場合は、指定された表スペース*のクォータをユーザーに明示的に付与する必要があります。 – APC
あなたの提案をありがとうAPC。はい、UNLIMITED TABLESPACEは本番システムで使用するのに最適な特権ではありません。しかし、すべてのdbユーザーにはRESOURCEロールが付与されています(これは、Oracleが無制限のTABLESPACEをあなたに伝えることなく静かに付与します)。今私は一時的な目的のためにこの特権を与える必要があるリソースの役割を削除しました。しかし後で助成枠の割り当てをさらに進めます。 – Tyn