您的位置:首页 > 数据库

在SQL Server里查看当前连接的在线用户数

2009-11-02 10:24 751 查看
 在SQL Server里查看当前连接的在线用户数

use master

select loginame,count(0) from sysprocesses
group by loginame
order by count(0) desc

select nt_username,count(0) from sysprocesses
group by nt_username
order by count(0) desc

如果某个SQL Server用户名test连接比较多,查看它来自的主机名:

select hostname,count(0) from sysprocesses where loginame='test'
group by hostname
order by count(0) desc

如果某个SQL Server用户名test连接比较多,查看它最后一次操作的时间范围分组:

select convert(varchar,last_batch,111),count(0) from sysprocesses where loginame='test'
group by convert(varchar,last_batch,111)
order by count(0) desc

如果从主机(www)来的连接比较多,可以查看它的进程详细情况

select * from??sysprocesses where hostname='www'

如果www机器主要提供网页服务,可能是asp程序处理连接时出了问题, 生成杀这些进程的SQL语句:

select 'kill '+convert(varchar,spid) from sysprocesses where hostname='www'

如果这样的问题频繁出现,可以写一个存储过程sp_KillIdleSpids.sql,

写一个作业, 执行它, 来自动杀掉从主机(www)来但已经一天没有响应的用户连接.

?
?
?
--------------------------------
SQL Server的用户及权限?
?sysadmin 可以在 SQL Server 中执行任何活动?
serveradmin 可以设置服务器范围的配置选项 关闭服务器?
setupadmin 可以管理链接服务器和启动过程?
securityadmin 可以管理登录和 CREATE DATABASE 权限 还可以读取错误日志和更改密码?
processadmin 可以管理在 SQL Server 中运行的进程?
dbcreator 可以创建 更改和除去数据库?
diskadmin 可以管理磁盘文件?
bulkadmin 可以执行 BULK INSERT 语句?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息