2009-06-09 6 views
7

MS SQL Server에서 데이터베이스 속성 대화 상자의 왼쪽에는 "연결 속성보기"링크가 있습니다. 클릭하면 인증 방법, 네트워크 프로토콜, 컴퓨터 이름 등과 같은 현재 연결의 속성이있는 연결 속성 대화 상자가 나타납니다.SQL Server에서 현재 연결 속성 가져 오기

SQL 쿼리를 실행하여 프로그래밍 방식으로 해당 정보를 가져 오는 방법이 있습니까? 그 쿼리는 어떻게 생겼을까요?

답변

18

SQL 2005 이후에 사용자가 sys.dm_exec_connections을 조사합니다. 현재 연결 속성을 검색하려면 실행하는 것 :

select * from sys.dm_exec_connections 
where session_id = @@SPID 

필드 값 (공유 메모리, 명명 된 파이프 또는 TCP)를 연결하는 데 사용되는 프로토콜에 의존하지만, 모든 인증 사용 방법, 프로토콜 및 클라이언트 그물에 대한 정보를 포함 주소.

+0

전체 연결 문자열은 어떨까요? –

+0

특정 데이터베이스에 대한 간단한 db_owner 역할 이상의 권한이 필요합니다. – Zarepheth

0

나는 대답이 '아니오'라고 생각합니다. 컴퓨터 정보는 컴퓨터에 저장됩니다. 연결 정보는 구성 파일 또는 MS SQL Server에 저장되어있을 가능성이 큽니다.

하지만 MSSQL system tables을보고 어떤 속성이 있는지 확인하십시오.

4

예, 가능하지만 연결 속성 UI에 표시된 항목이 여러 곳에서 제공되므로 어떤 속성을 사용 하느냐에 따라 다릅니다.

몇 가지 쿼리 (예 : xp_msverselect suser_sname())를 사용하여 일부 속성을 유지하지만 xp_instance_regread 저장 프로 시저를 사용하여 서버의 레지스트리에서 일부 값을 가져옵니다.

SQL 엔진과 상호 작용할 때 SQL을 사용하여 수행 할 수있는 거의 모든 작업은 관리 스튜디오입니다. 프로파일 러 세션을 시작하고 UI에서 작업을 수행하면 (때로는 애매한/문서화되지 않은/지원되지 않는) SQL이 실행 중임을 알 수 있습니다.

관련 문제