이 T-SQL을 고려하십시오. 기본적으로 내 "데이터베이스 연결 가져 오기"코드는 EXECUTE AS USER...WITH NO REVERT
이 이미 실행 된 연결을 반환합니다.SQL Server 사용자 이름 기능
문제는 이러한 사용자 이름 기능 중 하나에서 일관된 결과를 얻을 수 없다는 것입니다. 출력의 두 줄은 다음과 같습니다
dbo dbo original_user original_user original_user my_test_user my_test_user S-1-9-3-XXXXX.. S-1-9-3-XXXXX.. S-1-9-3-XXXXX..
USER
기능은 'EXECUTE AS'
AFTER 올바른 출력을 생성하지만, 오히려 사용자 이름보다 DBO을 보여주는 것를 미리 SUSER
기능은 정반대 - 그들은 올바른있어 처음에는 사칭을 한 후 일종의 ID를 표시합니다.
SUSER_SNAME에 대한 MSDN 문서는 이것이 올바르게 작동 할 것으로 예상되는 예제를 명시 적으로 제공합니다.
업데이트 : 내가 찾고있는 첫 번째 경우에는 'original_user'를 생성하고 두 번째에는 'my_test_user'를 생성하는 함수입니다.
MSDN의 예제 사용하기 전에 EXECUTE AS LOGIN은 당신이하고있는 것과 매우 다릅니다.EXECUTE AS를 사용하기 위해서는 가장 의도적 인 방법으로 특별히 계획 한대로 가장 범위 및 인증 자 개념을 완벽하게 이해해야합니다. http://msdn.microsoft.com/en-us/library/ms188304.aspx –