메뉴 건너뛰기


Developer > DBMS

현재 DB에 접속된 사용자 정보 보기

현재 DB에 접속된 사용자 정보를 보기 위해서는
 
sp_who 혹은 
sp_who2
 
라는 명령을 사용하여 확인할 수 있습니다.
sp_who나 sp_who2로 열거된 내용 중 해당 사용자가 수행하고 있는 SQL문을 보려면 SPID 컬럼의 내용을 이용하여
 
dbcc inputbuffer(SPID
 
와 같은 구문을 수행하는 것이 일반적인 방법인다.
 
한가지 더 추가한다면 다음과 같은 SQL문을 사용하여 sp_who2와 dbcc명령을 동시에 수행한 결과를 얻을 수 있습니다.
이 SQL문의  출처는 http://ceusee.springnote.com/pages/1762992 입니다.
 
--===================================
-- SP_WHO2와명령어동시확인하기
--===================================
 
SELECT
       ISNULL(D.text, '') AS SQLStatement,
       object_name(D.objectid) AS 'sp_ame',
       A.Session_ID SPID,
       ISNULL(B.status,A.status) AS [Status],
       A.login_name AS [Login],
       ISNULL(A.host_name, '  .') AS HostName,
       ISNULL(CAST(C.BlkBy AS varchar(10)), '  .') AS BlkBy,
       DB_NAME(B.Database_ID) AS DBName,
       B.command,
       ISNULL(B.cpu_time, A.cpu_time) AS CPUTime,
       ISNULL((B.reads + B.writes),(A.reads + A.writes)) AS DiskIO,
       A.last_request_start_time AS LastBatch,
       ISNULL(A.program_name, '') AS ProgramName,
       ISNULL(A.client_interface_name, '') AS ClientInterfaceName
FROM sys.dm_exec_sessions A
       LEFT OUTER JOIN sys.dm_exec_requests B ON A.session_id = B.session_id
       LEFT OUTER JOIN (
             SELECT A.request_session_id SPID, B.blocking_session_id BlkBy
             FROM sys.dm_tran_locks A
                    INNER JOIN sys.dm_os_waiting_tasks B ON .lock_owner_address = B.resource_address
       ) C ON A.Session_ID = C.SPID
       OUTER APPLY sys.dm_exec_sql_ext(B.sql_handle) D
GO



Creative Commons License
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Copyright 조희창(Nicholas Jo). Some rights reserved. http://bbs.nicklib.com