3

セキュリティを強化するため、Oracle データベース ユーザーからすべてのシステム権限を削除します。現在、このユーザーには次のシステム権限のみがあります。

  • セッションを作成
  • 無制限のテーブルスペース

ユーザーが DDL コマンドを実行できないことを望んでいました。しかし驚いたことに、ユーザーはスキーマを作成できなくても、独自のスキーマで DROP TABLE を実行できます。

Oracleのドキュメントによると、DROP TABLE の前提条件は、「テーブルが独自のスキーマに存在するか、DROP ANY TABLE システム権限を持っている必要がある」ことです。それだけ!!!Oracle のセキュリティ ロジックがわかりませんが、ユーザーが自分のテーブルをドロップしないようにする方法はありますか?

別の方法として、別のユーザーを作成してアプリケーションを実行し、オブジェクト アクセスを許可することもできますが、これは潜在的な問題があるため避けたいと考えています。

4

1 に答える 1

11

ユーザーは、自分が所有するオブジェクトを削除する権限を常に持っています。特権を取り消すことによってそれを防ぐことはできません。

セキュリティの強化を検討しているため、新しいユーザーを作成し、データを操作するために必要な権限をそのユーザーに付与することが正しい答えです。アプリケーション オブジェクトを所有するユーザーとして本番データベースにログインする必要があるのは DBA だけであり、スキーマへの変更をデプロイしている最中に限られます。他のすべての人は、スキーマ所有者以外のユーザーとしてデータベースにログインする必要があります。

そうは言っても、適切な解決策が、現在実行する準備ができているよりも多くの作業である場合、潜在的な応急処置はDROP、指定されたスキーマ内のオブジェクトに対して a が発行された場合に例外をスローする DDL トリガーをデータベースに作成することです。これは、適切なソリューションよりも安全性が低くなります。トリガーを実装するときに何かを見落としたり、トリガーを削除または無効にしたり、再度有効にするのを忘れたりする可能性があります。また、予定されていないカスタム ソリューションがあるため、セキュリティ レポートがはるかに困難になります。監査人にとって問題を引き起こす可能性のあるさまざまなセキュリティ関連のデータ ディクショナリ ビューで明らかになります。

于 2012-01-12T17:23:19.447 に答える