查看: 10381|回复: 22

[原创] B1管理在线用户

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2009-9-7 16:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位,如何查看当前登录系统的用户及其登陆时间?为了不占用用户数如何“踢人”呢?即超过半小时没有系统操作的用户自动退线?
论坛徽章:
1
2009日食纪念
日期:2009-07-22 09:30:00
2#
发表于 2009-9-8 08:36 | 只看该作者
管理--授權--授權管理,正在登錄的用戶為灰色

使用道具 举报

回复
论坛徽章:
5
ITPUB8周年纪念徽章
日期:2009-09-27 10:21:222010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:05:01ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252011新春纪念徽章
日期:2011-02-18 11:43:33
3#
发表于 2009-9-8 10:29 | 只看该作者
B1的License是分配到用户的,楼主如何“踢人”的?

使用道具 举报

回复
论坛徽章:
0
4#
 楼主| 发表于 2009-9-8 16:14 | 只看该作者
原帖由 mengjie8210 于 2009-9-8 08:36 发表
管理--授權--授權管理,正在登錄的用戶為灰色

我希望可以查看他们的在线时间怎么看?

使用道具 举报

回复
论坛徽章:
0
5#
 楼主| 发表于 2009-9-8 16:16 | 只看该作者
原帖由 eric_e 于 2009-9-8 10:29 发表
B1的License是分配到用户的,楼主如何“踢人”的?

查看当前用户是否超过半小时没在系统中输入系统,如果没有则发送警报给管理员!

使用道具 举报

回复
论坛徽章:
5
ITPUB8周年纪念徽章
日期:2009-09-27 10:21:222010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:05:01ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252011新春纪念徽章
日期:2011-02-18 11:43:33
6#
发表于 2009-9-8 21:03 | 只看该作者
原帖由 hongzzh 于 2009-9-8 16:16 发表

查看当前用户是否超过半小时没在系统中输入系统,如果没有则发送警报给管理员!


兄弟这些"强奸"人呀,用户打开系统难道就为了要做单据呀?不能干点别的;
实现这个功能当然是可以的。

使用道具 举报

回复
论坛徽章:
0
7#
发表于 2009-9-9 11:41 | 只看该作者
原帖由 hongzzh 于 2009-9-7 16:35 发表
请教各位,如何查看当前登录系统的用户及其登陆时间?为了不占用用户数如何“踢人”呢?即超过半小时没有系统操作的用户自动退线?


1.查看当前登录系统的用户及其登陆时间,所有SQL Server数据连接信息存在它的一张系统表 master.dbo.sysprocesses 中
前提条件:  每个终端用户的客户端机器名都是唯一
方法:    将客户端机器名关联到对应的B1用户,然后通过master.dbo.sysprocesses获取B1用户登录信息,登录及操作时间等,在做一个查询
第一步: 在B1用户上定义一个自定义字段"ClientMch",表示客户端机器名,用于关联到B1用户
第二步: 在每个B1用户上设定好自己的客户端机器名
第三步: 在B1查询管理器里创建一下查询,请将SBODemoUS换成你自己的数据库名

select hostname as '客户端', User_Code As 'B1用户代码',U_Name as 'B1用户名' ,
nt_domain as Domain, nt_username as 'Window用户',
loginame as '数据库用户',login_time as '登录时间', last_batch as '上次操作时间',
DATEDIFF(minute, last_batch , GetDate()) as '空闲时间(分)'
from master.dbo.sysprocesses left outer join SBODemoUS.dbo.OUSR
on hostname collate SQL_Latin1_General_CP850_CI_AS  = U_ClientMch collate SQL_Latin1_General_CP850_CI_AS
where spid >=0 and spid <= 32767  and program_name = 'SAP Business One' and db_name(dbid)='SBODemoUS'





使用道具 举报

回复
论坛徽章:
0
8#
发表于 2009-9-9 11:47 | 只看该作者

回复 #7 yatsea 的帖子

如何踢人?
不建议直接踢人,太暴力了,万一别人的单据还没保存,把人踢了,那不是白干了。。。
如前面所提的,通过警报来提示该用户和系统管理员,通过上面的查询里,已经能获得登录用户和空闲时间,
如果空间时间超过半小时就提示,这个查询你自己来吧。

使用道具 举报

回复
论坛徽章:
1
2009新春纪念徽章
日期:2009-01-04 14:52:28
9#
发表于 2009-9-9 12:07 | 只看该作者
请指教一下如何踢人呀?这个对某些人应该很实用的.

特别是使用远程桌面连接的用户,有时候会出现黑屏现象的.SBO又退出不了.如果更改"远程桌面连接"用户,但是SBO用户又使用不了.

使用道具 举报

回复
论坛徽章:
20
祖国60周年纪念徽章
日期:2009-10-09 08:28:002013年新春福章
日期:2013-02-25 14:51:24优秀写手
日期:2013-12-18 09:29:112014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14现任管理团队成员
日期:2012-10-18 18:19:10
10#
发表于 2009-9-9 14:30 | 只看该作者
好方法,赞一个!
但不是很严谨,有这种管理要求的项目,你无法要求一个机器上只能一个固定用户名登录,不排除几个用户会共用一台机器,但用各自用户名进行登录的情况.
我觉得这种方案是否更好, 如下:
一,在存储过程里,当用户登录时,把登录信息,包括用户名,@@spid,当前时间放入一个自定义表.
二,然后根据这个自定义表的信息和dbo.sysprocesses 和当前时间进行判断写查询.

[ 本帖最后由 waynemaggie 于 2009-9-9 14:33 编辑 ]

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表