2012-02-08 15 views
1

SQL Server ProfilerにはNtUsernameが表示されます。 NTusernameはどのようにトリガされますか?NTusernameはどのようにトリガーされますか?

わかりません。 SQL Server Profilerは、Windowsユーザー名を表示します。 SUSER_NAME、SUSER_SNAME ORIGINAL_LOGIN、USER、USER_NAMEは、SQLユーザーアカウントのユーザー名を表示します。プロファイラが表示しているものが必要です。プロファイラが実行できる方法が必要です。

答えて

1

使用できないため、SQLログインは、プロファイラでntusernameの値を持っていません。 NTUsernameを取得する方法を見つけることができませんでした.HOST_NAME()を使用して、ユーザーのマシン名を指定しました。

SUSER_NAME、SUSER_SNAME、ORIGINAL_LOGIN、USER、USER_NAMEはすべてSQLアカウントのユーザー名を与えました。

+0

SQLログインのためにprofiler *は本当にntusernameを表示しますか? – gbn

+0

私にも意味がありません。私はこの分野で十分理解していない。しかし、私はそれが私が探しているユーザー名を表示することを知っている。 – Bruno

0

ログインがWindows認証ログインでない限り、NTUserNameの間に相関はありません。しかし、suser_name()はあなたが望むものを返さないので、私はあなたがSQL Server認証を使用していると仮定しています。

この場合、私はあなたがこれを行うことができるとは思わない。

+0

右を参照してくださいWindows認証情報を取得する方法はありません(トリガーなどで)。 Windowsのアカウント情報を知る必要がある場合は、Windows認証でログインする必要があります。 –

+0

@AaronBertrandおそらくWMIでそれを行う方法がありますが、私は確かにその答えを知らない。 –

+0

私は方法がわかりません - SQL Serverはホスト名(渡されたもの)を識別できますが、SQL Serverが実行されているボックスにログオンしていない限り、取得できる限りです。また、SQL認証では、SQL Serverがユーザーと同じドメインにあるという保証もありません。 –

1

SUSER_SNAME()を使用してください。いいえSUSER_NAME()

SUSER_NAMES

  • SUSER_SNAME余分は、接続ユーザー(SQL Serverの2000+)
  • SUSER_NAMEsys.server_principals.principal_id(SQL Serverの2005+)の値を与える返す注にNULLを与えますWindowsグループのみがエントリを持つため、Windowsグループ経由で接続するWindowsユーザー

    の注:

    • あなたはSQL Serverインスタンスでデータベースレベルで
    • 反対であるレベルをSUSER_IDとSUSER_SIDを持っている、あなたはUSER_NAMEとDATABASE_PRINCIPAL_ID(USER_IDは推奨されません)
    • Aを持っていますそれは私ので
関連する問題