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

SYSが所有するオブジェクトにトリガーを作成できないのはなぜですか?

    何かを作成するべきではありません SYSスキーマ内のオブジェクト。そのユーザーはOracleデータベース管理システムの一部であり、そのスキーマを変更するとデータベースが破損する可能性があります。確かに、Oracleサポート契約が無効になる可能性があります(契約がある場合)。ドキュメントから:

    「管理アカウントSYSは、データベースの作成時に自動的に作成されます。このアカウントは、すべてのデータベース管理機能を実行できます。SYSスキーマは、データディクショナリのベーステーブルとビューを格納します。これらのベーステーブルとビューは、OracleDatabaseの操作に不可欠です。 SYSschemaはデータベースによってのみ操作され、ユーザーが変更してはなりません。」

    ああ、不思議に思うかもしれませんが、同じことがSYSTEMにも当てはまります。

    トリガーは特に悪用される傾向があり、スケーリングの問題の主な原因です。これが、オラクルがSYSでトリガーを作成することを禁止している理由です。そうすると、データディクショナリが破損したり、少なくともデータディクショナリのパフォーマンスに影響を及ぼしたりする可能性があるためです。

    もちろん、それはここで起こっていることではありません。 SYSで独自のテーブルを作成しました。よくそれらをドロップします。今。 SYSを使用して、独自のユーザー、GHAZAL、または適切な名前を作成し、それに必要な特権(CREATE SESSION、CREATE TABLE、CREATE TRIGGERなど)を付与します。次に、その新しいユーザーとして接続して、テーブルやその他のスキーマオブジェクトを作成します。




    1. SQLServerからのINSERTINTOを使用したSalesforceデータの変更

    2. Oracleアプリに適用されているパッチを見つけるための上位のクエリ

    3. ウェビナー:Postgresでのバンキング–金融アプリケーションの考慮事項[フォローアップ]

    4. pdoをテストするためのphpコードは利用できますか?