2012-02-08 2 views
1

SQL Server 프로파일 러는 NtUsername을 표시합니다. 트리거에서 NTusername을 어떻게 볼 수 있습니까?트리거에서 NTusername을 어떻게 볼 수 있습니까?

나는 이해할 수 없다. SQL Server 프로파일 러는 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

profiler *는 SQL 로그인에 대해 ntusername을 표시합니까? – gbn

+0

나에게도 의미가 없습니다. 나는 그 지역에서 충분히 이해하지 못한다. 나는 그것이 내가 찾는 사용자 이름을 보여줍니다. – Bruno

0

로그인이 Windows 인증 로그인이 아니면 NTUserName간에 상관 관계가 없습니다. 그러나 suser_name()이 원하는 것을 반환하지 않기 때문에 SQL Server 인증을 사용하고 있다고 가정합니다.

이 경우, 나는 당신이 이것을 할 수 있다고 생각하지 않습니다.

+0

마우스 오른쪽을 볼 수, 당신은 SQL Server 인증을 사용하는 경우 , 트리거 또는 다른 방법으로 Windows 인증 정보를 얻을 수있는 방법이 없습니다. Windows 계정 정보를 알아야하는 경우 사용자가 Windows Auth를 사용하여 로그인해야합니다. –

+0

@AaronBertrand 아마도 WMI를 사용하여 수행 할 수있는 방법이 있지만 그 대답을 알지 못합니다. –

+0

어떻게해야할지 모르겠다 - SQL Server는 호스트 이름을 (전달 된 것처럼) 식별 할 수 있지만 SQL Server가 실행되고있는 상자에 로그온하지 않은 한 그 호스트 정보는 얻을 수있는 범위까지입니다.또한 SQL 인증을 사용하면 SQL Server가 사용자와 동일한 도메인에 있음을 보장하지 않습니다. –

1

SUSER_SNAME()을 사용합니다. 아니 SUSER_NAME(). 여분의 S

SUSER_NAME에 대한 NULL을 줄 것을 반환합니다 Windows 그룹에만 항목이있어 Windows 그룹을 통해 연결하는 Windows 사용자

개주의가 :

  • 당신이 데이터베이스 수준에서 반대
  • 을있는 SQL 서버 인스턴스 수준에서 SUSER_ID과 SUSER_SID 한, 당신은 USER_NAME 및 DATABASE_PRINCIPAL_ID (USER_ID가 지원되지 않습니다)
  • 그것이 내가 때문에
관련 문제