监控目前所有连接SQL SERVER的用户信息

david_dbo 2010-03-26 04:54:21
什么工具可以监控目前所有连接SQL SERVER的用户的信息
包括IP,登录名,执行语句~我使用的是SQL2005
...全文
325 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
htl258_Tony 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sql_sf 的回复:]
SQL code
--转一个给你吧
if object_id('p_getlinkinfo','P')is not null drop proc p_getlinkinfo
go
create proc p_getlinkinfo
@dbname sysname=null, --要查詢的數據庫名,默認表示所有
@includeip bit=0 --是否顯示IP信息 ……
[/Quote]
效果不错.
david_dbo 2010-03-26
  • 打赏
  • 举报
回复
很好很强大
东那个升 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sql_sf 的回复:]
SQL code
--转一个给你吧
if object_id('p_getlinkinfo','P')is not null drop proc p_getlinkinfo
go
create proc p_getlinkinfo
@dbname sysname=null, --要查詢的數據庫名,默認表示所有
@includeip bit=0 --是否顯示IP信息 ……
[/Quote]

up
SQL77 2010-03-26
  • 打赏
  • 举报
回复
SP_WHO
sql_sf 2010-03-26
  • 打赏
  • 举报
回复
--转一个给你吧
if object_id('p_getlinkinfo','P')is not null drop proc p_getlinkinfo
go
create proc p_getlinkinfo
@dbname sysname=null, --要查詢的數據庫名,默認表示所有
@includeip bit=0 --是否顯示IP信息
as
begin
declare @dbid int
set @dbid=db_id(@dbname)
if object_id('tempdb..#tb')is not null drop table #tb
if object_id('tempdb..#ip')is not null drop table #ip
create table #tb
(id int identity(1,1),
dbname sysname,
hostname nchar(128),
loginname nchar(128),
net_address nchar(12),
net_ip nvarchar(15),
prog_name nchar(128))
insert into #tb(hostname,dbname,net_address,loginname,prog_name)
select distinct hostname,
db_name(dbid),
net_address,
loginame,
program_name
from master..sysprocesses
where hostname!=''and(@dbid is null or dbid=@dbid)
if @includeip=0 goto lb_show --不顯示IP
declare @sql varchar(500),@hostname nchar(128),@id int
create table #ip(hostname nchar(128),a varchar(200))
declare tb cursor local for select distinct hostname from #tb
open tb
fetch next from tb into @hostname
while @@fetch_status=0
begin
set @sql='ping '+@hostname+' -a -n 1 -l 1'
insert #ip(a) exec master..xp_cmdshell @sql
update #ip set hostname=@hostname where hostname is null
fetch next from tb into @hostname
end
update #tb set net_ip=left(a,patindex('%:%',a)-1)
from #tb a inner join
(select hostname,a=substring(a,patindex('Ping statistics for %:%',a)+20,20)
from #ip
where a like'Ping statistics for %:%')b
on a.hostname=b.hostname
lb_show:
select id,
dbname,
hostname,
loginname,
net_address,
net_ip,
prog_name
from #tb
end
go
exec p_getlinkinfo @dbname='DB_WIP',@includeip=1
sql_sf 2010-03-26
  • 打赏
  • 举报
回复
select distinct hostname,
db_name(dbid),
net_address,
loginame,
program_name
from master..sysprocesses
where hostname!=''
东那个升 2010-03-26
  • 打赏
  • 举报
回复
收集EVENTDATE()
--小F-- 2010-03-26
  • 打赏
  • 举报
回复
我汗 还要IP...
东那个升 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 david_dbo 的回复:]
什么工具可以监控目前所有连接SQL SERVER的用户的信息
包括IP,登录名,执行语句~我使用的是SQL2005
[/Quote]

这个有点难度,
用服务器级触发器。不知道可不可以抓全。
ws_hgo 2010-03-26
  • 打赏
  • 举报
回复
sp_helplogins
--小F-- 2010-03-26
  • 打赏
  • 举报
回复
查看所有数据库用户登录信息 
sp_helplogins

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧