問題タブ [ddl-trigger]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL Server 2005 の変更の監査
SQL Server 2005 には、特にストアド プロシージャの削除などを監査する組み込みの方法はありますか? 照会できる履歴テーブルはありますか? 現在、数回姿を消した謎の sproc があります。
sql-server - SQL Server 2000 に DDL 監査はありますか
そうでない場合、トリガーがいつ無効/有効になったかを知る方法はありますか?
ファローアップ:
かなり興味深い診断例です。私は周辺から関与しただけで、診断を行っているのはデータベース担当者ではありません。
とにかく、彼はあるテーブルから別のテーブルにデータを移動するトリガーを持っていました。彼は比較を行いましたが、すべてのデータが 2 番目のテーブルにあるわけではありませんでした。私は SQL Server の批判者ですが、SQL Server のトリガーが同じトランザクションで起動することを信頼しています。彼は言ったが、一部のデータは成功した... それが無効になっているだけなら、何も成功しないはずだ. 真実。それで、誰かがトリガーを有効または無効にしている可能性があると言いました。したがって、質問です。
しかし、実際に起こったことは、誰かがトリガーを永久に無効にし、特定の時間に実行するように設定された sproc にコードをコピーしたことです。
正しいフォレンジック テストは、2 番目のテーブルの依存関係を調べて、他に何が使用されているかを確認することでした。それは腫瘍の発生を示します... (私はハウスの再放送をたくさん見てきました、わかりますか)。
sql - DDLトリガーからALTERの前にプロシージャテキストを取得する方法
手順テキストがどのようにALTER
編集されたかを追跡するトリガーを作成しています。
データベースのDDLトリガー内では、を介して現在のプロシージャTextにアクセスできます/EVENT_INSTANCE/TSQLCommand
。
調査した後でもEVENTDATA()
、以前の手順の定義の値は含まれていませんでしたALTER
。
DELETED
テーブルを使用してDMLトリガーの削除された値にアクセスする方法など、以前のテキストを取得する方法はありますか?
sql-server - C# で記述された SQL CLR DDL トリガー
C# でデータベース/DDL トリガーを作成することは可能ですか? もしそうなら、どのように?
[編集]
基本的に、データベース トリガーに CLR を使用することにしました。これは、C# SMO を使用して変更するオブジェクトのスクリプトを作成し、データベース オブジェクトのバージョンを追跡するテーブルにオブジェクト スクリプトを挿入するためです。
sql - SQL Serverスキーマの変更、特に「列名」の変更を取得する方法
トリガーを使用してDDLの変更をトレースしていますが、SQL Server Management Studioから列名を変更すると、トリガーが機能しませんか?
sql-server - DDLトリガーに署名を追加する方法は?
データベースに DDL トリガーがあります。証明書によって署名を追加したい。私は完全な sa の権利を持っていますが、ステートメントを実行しようとすると
次のエラーが表示されます
この DDL トリガーに署名を追加するにはどうすればよいですか?
sql-server - DISABLE TRIGGERでトリガーを発射
本番データベース インスタンスですべての SQL DDL イベント (ALTER/DROP/CREATE など) をブロックするセーフティ トリガーがあります。
展開の場合は、実行しDISABLE TRIGGER
てから完了しENABLE TRIGGER
ます。
EXEC sp_notify_operator ...
安全トリガーが無効/有効になったときに、オペレーターに通知 ( ) を受け取りたいです。それらはDDL イベントではないようで、どちらにも UPDATE/DELETE トリガーを追加できませんsys.triggers
。何か案は?
mysql - MySql: テーブルが最後に変更された日付を知る
私はMySqlでInnoDBエンジンを使用しています.テーブルが最後に変更された日時を知ることができるかどうかを調べようとしています(データであるか構造であるか)。
column update_time
InnoDBなのでinは使えませんinformation_schema
。Tables
そこには何も記録されていないためです。大量のデータを使用した場合のパフォーマンスはinformation_schema
とにかくお粗末なので、大きな損失はありません。
変更が行われたときに自作の「メタデータ」テーブルに日付を挿入するトリガーを使用することを考えましたが、MySql は DDL トリガー (Create、Alter、Drop ステートメント) をサポートしていないため、これも機能しません。 .
ここでアイデアが不足しています。ヒントはありますか?
ありがとう
編集:この日時データが、開発中の Silverlight アプリケーションによって (Web サービス経由で) 取得されることを指定するのを忘れていました。
背景をさらに詳しく説明すると、データベースの構造とそのデータを返す Web サービスのメソッドがあります。サイズによっては、information_schema
テーブル内の外部キー情報を取得する必要があるため、これは比較的長い操作になる可能性があります。したがって、データまたは構造が変更された場合にのみデータベースにクエリを実行したいと考えています。
oracle - アクセス許可を付与するOracleトリガーを作成するにはどうすればよいですか
概念的には単純ですが、実際にはもっと複雑に見えることをしたいと思います。
基本的に、データベース内の2人のユーザーに対して新しいテーブルが作成されるたびに、ロールにselect権限を付与したいと思います。基本的にこれ:
grant select on TABLENAME to READROLE;
これまでのところ、私のトリガーは次のようになっています。
トリガーの作成または置換osmm_grant_on_creation
OSMM.SCHEMAで作成した後
始める
終わり
問題は、新しく作成されたテーブルの名前を取得し、トリガーを介してそれを付与に参照することによって、2つを結合する方法を理解できないことです。助言がありますか?ありがとう。