SQL Server のストアド プロシージャから、接続を所有する実行可能ファイル (MyApp.exe) の名前を取得できますか? APP_NAME() があることは知っていますが、接続文字列の「アプリケーション名」パラメーターに渡された文字列を返すように見えます。
これが可能な場合、どのように行うことができますか? ありがとう。
SQL Server のストアド プロシージャから、接続を所有する実行可能ファイル (MyApp.exe) の名前を取得できますか? APP_NAME() があることは知っていますが、接続文字列の「アプリケーション名」パラメーターに渡された文字列を返すように見えます。
これが可能な場合、どのように行うことができますか? ありがとう。
アプリ名を渡すようにストアド プロシージャを変更しない限り、APP_NAME() の結果に固執します。アプリのビルドに使用される開発ツールを示す一般的なデフォルト値をそのまま受け入れるのではなく、開発者がそこに意味のある値を設定していることを願っています。
お役に立てれば、
明細書
残念ながら、私はそのようなことを認識していません。接続がまったく別のマシンからのものである可能性が高いことを覚えておいてください。
おそらく、さまざまなアプリがさまざまなユーザー名を使用してデータベースにアクセスするように、セキュリティを設計できます。現在のユーザーを見つけるのは簡単です。
接続文字列からコンピューターと情報を取得できますが、基本的にはそれだけです。
監視やその他の手段により、開発者は接続文字列で常にアプリケーション名を使用することができます。たとえば、承認されたアプリケーション名ではないケースをログに記録したり、プロファイラーを使用して監視したりできます。
Oracleはexeの名前を提供できますが、SQL Serverはできません-異なるアーキテクチャです。
クライアント マシンでプロセスの ID を取得することもできるので、それをプロセス名にマッピングする魔法のような方法があれば、それを実行できます。