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

来源:互联网 发布:talkback是什么软件 编辑:程序博客网 时间:2024/05/01 09:40
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 语句
固定数据库角色 描述
db_owner 在数据库中有全部权限
db_accessadmin 可以添加或删除用户ID
db_securityadmin 可以管理全部权限 对象所有权 角色和角色成员资格
db_ddladmin 可以发出ALL DDL但不能发出GRANT REVOK或DENY语句
db_backupoperator 可以发出DBCC CHECKPOINT和BACKUP 语句
db_datareader 可以选择数据库内任何用户表中的所有数据
db_datawriter 可以更改数据库内任何用户表中的所有数据
db_denydatareader 不能选择数据库内任何用户表中的任何数据
db_denydatawriter 不能更改数据库内任何用户表中的任何数据
一些sql中的扩展存储的总结
xp_availablemedia 显示系统上可用的盘符'C:' xp_availablemedia
xp_enumgroups 列出当前系统的使用群组及其说明 xp_enumgroups
xp_enumdsn 列出系统上已经设置好的ODBC数据源名称 xp_enumdsn
xp_dirtree 显示某个目录下的子目录与文件架构 xp_dirtree 'C:inetpubwwwroot'
xp_getfiledetails 获取某文件的相关属性 xp_getfiledetails 'C:inetpubwwwroot.asp'
dbp.xp_makecab 将目标计算机多个档案压缩到某个档案里所压缩的档案都可以接在参数的后面用豆号隔开 dbp.xp_makecab 'C:lin.cab','evil',1,'C:inetpubmdb.asp'
xp_unpackcab 解压缩 xp_unpackcab 'C:hackway.cab','C:temp',1
xp_ntsec_enumdomains 列出服务器域名 xp_ntsec_enumdomains
xp_servicecontrol 停止或者启动某个服务 xp_servicecontrol 'stop','schedule'
xp_terminate_process 用pid来停止某个执行中的程序 xp_terminate_process 123
dbo.xp_subdirs 只列某个目录下的子目录 dbo.xp_subdirs 'C: