質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

1回答

206閲覧

SQLServerで、セッションを確認した場合に表示される ホスト名が 実在しない?! 

saya24

総合スコア243

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2024/07/12 03:20

編集2024/07/12 03:21

実現したいこと

SQLServerで 特定LOGIN_NAMEで 利用され続けているセッションを抽出するSQL文は以下の認識です。こちらに表示されるhost_nameを実在する正確な情報を表示したいです。
(単純にSSMSで 表示されるホスト名でもある)

T

1SELECT login_time, host_name, session_id FROM sys.dm_exec_sessions WHERE login_name IN ('DB_usr1','DB_usr2')

発生している問題・分からないこと

添付のとおり、セッション中として表示されたホスト名を PINGコマンドなり・SKYSEAで 状況を確認しようとしても 実在しないとの結果になります。イメージ説明

事実こういったホスト名の端末は 以前存在していたことは間違いありませんが、現況は存在していません。推察の域にすぎませんが 当該ホスト名が存在していた時期の IPアドレスは 現況も維持運用されていて、セッション利用中の端末のIPアドレスが かつて 存在していた当時のホスト名で表示されてしまっているのでは?? とかいう疑いをもっています。

SQLServerの問題ではなく、DNSやSQLServerのインフラ的問題もしくは SQLServer内のHOTSファイル / LMHOSTSファイル に起因した問題とも思え、また正直なところ こちらを見た限り、解決できないことも推察しています。(記事中に、「また、不正確なデータが提供されることもあります。」の記載あり)

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

上記に書いたとおり、解決できない可能性を予測しましたが、皆さんも諦めているのか把握したく、今回の問合せに至りました。

補足

今更強く解決を望むわけではないのですが、ず~っと疑問に思ってきたことです!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2024/07/13 18:59

sys.dm_exec_connectionsと結合すればIPは調べられますよ SELECT a.login_time, a.host_name, b.client_net_address, a.login_name, a.session_id FROM sys.dm_exec_sessions a inner join sys.dm_exec_connections b on a.session_id=b.session_id; https://learn.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sessions-transact-sql https://learn.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-connections-transact-sql
guest

回答1

0

sys.dm_exec_sessionsにあるhost_nameはネットワーク上の端末名とは限りません。

https://learn.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sessions-transact-sql?view=sql-server-ver16

host_name
nvarchar(128)
セッション固有のクライアント ワークステーションの名前。 内部セッションの場合、この値は NULL になります。 NULL 値が許可されます。
セキュリティに関する注意: クライアント アプリケーションによって提供されるワークステーション名で、不正確なデータが指定される可能性があります。 セキュリティ機能として HOST_NAME に依存しないでください。

追記:
クライアントアプリ側の話をするならば、接続文字列で WorkStation ID=AAAA と記載すれば、host_name欄は AAAA になります。

すこし探してみたところ、こんなページもありました。
WorkStation IDとHost_Name()
http://www.dcns.ne.jp/~sk7n2jch/Acc04.html

投稿2024/07/12 14:14

編集2024/07/13 08:02
hqf00342

総合スコア351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問