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

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控目前所有连接SQL SERVER的用户信息相关的知识,希望对你有一定的参考价值。

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

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 likePing 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=master,@includeip=1

  消息15281,级别16,状态1,过程xp_cmdshell,第1 行
  SQL Server 阻止了对组件‘xp_cmdshell‘ 的过程‘sys.xp_cmdshell‘ 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_confi  gure 启用‘xp_cmdshell‘。有关启用‘xp_cmdshell‘ 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。

SELECT * FROM sys.configurations ORDER BY name ; sp_configure show advanced options, 1; go reconfigure; go sp_configure xp_cmdshell, 1; go reconfigure; go

 


以上是关于监控目前所有连接SQL SERVER的用户信息的主要内容,如果未能解决你的问题,请参考以下文章

服务案例 SQL Server数据库反复重启问题

如何使用Druid监控sql

目前国内做机床数据采集的哪个公司做的比较好?

SQL Server 收集数据库死锁信息

symfony 5.3 连接微软 sql server mssql

SQL Server 2008 查找特定用户拥有的数据库