セキュリティを強化するため、Oracle データベース ユーザーからすべてのシステム権限を削除します。現在、このユーザーには次のシステム権限のみがあります。
- セッションを作成
- 無制限のテーブルスペース
ユーザーが DDL コマンドを実行できないことを望んでいました。しかし驚いたことに、ユーザーはスキーマを作成できなくても、独自のスキーマで DROP TABLE を実行できます。
Oracleのドキュメントによると、DROP TABLE の前提条件は、「テーブルが独自のスキーマに存在するか、DROP ANY TABLE システム権限を持っている必要がある」ことです。それだけ!!!Oracle のセキュリティ ロジックがわかりませんが、ユーザーが自分のテーブルをドロップしないようにする方法はありますか?
別の方法として、別のユーザーを作成してアプリケーションを実行し、オブジェクト アクセスを許可することもできますが、これは潜在的な問題があるため避けたいと考えています。