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

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

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

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

Q&A

2回答

30038閲覧

SQL Server で 現在ログイン中のアカウントを知りたい

paul

総合スコア21

SQL Server

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

0グッド

0クリップ

投稿2017/04/14 07:56

編集2022/01/12 10:55

###前提・実現したいこと
SQL Server で 現在ログイン中のアカウントを知りたい状況です。
アカウントのログイン状況を取得する方法を知りたいです。

*** 追記 ***
抽象的でわかりにくい表現であったため、追記いたします。
ここでいう「アカウント」とは、下記リンクの「SQL Serverのログイン名」のことを指します。
ユーザー名とユーザー ID を返す関数

正式な名称を把握していないため、イメージを添付します。

赤枠の部分の情報のログイン状況(接続状況?)のことを指しています。
SQL Server Management Studio オブジェクトエクスプローラー インスタンス\セキュリティ\ログイン
この情報の、各ログイン情報のログイン状況(SQLServerのインスタンスへの)を把握したいと考えております。

上記情報で、SQL Server認証を使って認証するログイン情報のことを指しています。
認証画面

ログイン情報、ログイン状況という言葉も適切であるかはわかりません。
サーバーへの接続認証情報、サーバへの接続状況 という言葉が適切かもしれません。

知識不足であれば申し訳ありませんが、よろしくお願いいたします。


###わからないこと

・そもそも、そういった情報をSQLServerが保持しているかどうか。
・保持している場合、取得できるのか。(クエリなどで)

###補足情報
SQL Server 2014 or 2016

よろしくお願いいたします。

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

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

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

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

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

alg

2017/04/17 05:41

「SQL Server で 現在ログイン中のアカウント」とありますが、これはセッション情報のことではなく、ログイン監査 (Login Auditing) で記録される情報のことでしょうか?
guest

回答2

0

「アカウント」が具体的に何を指しているのかがちょっと分からないですが、以下のリンクにある関数のいずれかで取得できますでしょうか。

ユーザー名とユーザー ID を返す関数

投稿2017/04/14 08:24

編集2017/04/14 13:51
SVC34

総合スコア1149

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

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

paul

2017/04/17 04:27

回答ありがとうございます。 抽象的な表現、失礼いたしました。 私が「アカウント」と表現したものは、提示していただいているページ内でいうところの「SQL Server ログイン名」に相当します。 リンク先の内容は ユーザー名とユーザー ID を返す関数 のようで、ログイン状況をユーザー別に取得できるような情報は取得できないように思います。 例えば、master.dbo.syslogins.loginnameや、にユーザー名の情報は存在しました。しかしログイン状況を示す値は特に存在しておりませんでした。 情報ありがとうございます。参考になりました。
guest

0

Windowsにログインしているアカウントではないですよね?
SQLServerに接続しているユーザーってことですよね?
という前提で調べてみました。

ManagementStudioで確認する方法
http://itdiary.info/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9/post-110/

クエリで確認する方法(セッションとなっているので期待する結果が取れるかはわかりません)
http://d.hatena.ne.jp/ku__ra__ge/20130619/1371567600

投稿2017/04/14 08:04

ttyp03

総合スコア16996

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

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

paul

2017/04/14 08:35

早速のご回答ありがとうございます >Windowsにログインしているアカウントではないですよね? >SQLServerに接続しているユーザーってことですよね? その通りでございます。 >ManagementStudioで確認する方法 プログラム中で取得したいと考えておりますので、Management StudioのGUIツールを使う選択肢は考えておりませんでした。ここに表示されている情報はセッションとかではなくログイン情報なのでしょうか。であればこの情報をクエリやらプログラムから取得できれば良いのですが。 >クエリで確認する方法(セッションとなっているので期待する結果が取れるかはわかりません) おっしゃる通りで、その情報だと、ログイン状況ではなくセッションが張られているかどうかですので、望んでいる情報ではないですね。。。 ログインしているかどうかを知りたいです。
paul

2017/04/17 02:43

回答ありがとうございます。 sys.sysprocessesの情報を確認しましたところ、ManagementStudioの表示項目と一致する情報が多数あることを確認しました。確かに、sys.sysprocessesから情報を取得しているように思えます。 しかし、Management Studioの表示項目(sys.sysprocesses)の情報はどうやらセッション情報のようです。 ログインしてからログアウトせず、放置したところ、行が消滅したことを確認いたしました。(おそらくタイムアウト) ログイン/ログアウトなどのログイン状況を判別するのは難しいように思えます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問