怎样把用户登陆的时间存入自己创建的一个数据表中?

jjdelphi 2005-12-21 03:41:53
想在客户端连接到SQL Server时,SQL Server能够自动记录下登陆连接的时间,存入创建的一个数据表中?
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjdelphi 2006-02-15
  • 打赏
  • 举报
回复
没有解决问题
Jpp 2005-12-22
  • 打赏
  • 举报
回复
用审计吧:
sp_trace_setevent [ @traceid = ] trace_id
, [ @eventid = ] event_id
, [ @columnid = ] column_id
, [ @on = ] on
unlme 2005-12-22
  • 打赏
  • 举报
回复
不能因为不负责客户端就不考虑实际吧,这种明显的前台事件入口你非放入数据库里面实现,你也知道开销大啊。
yesyesyes 2005-12-22
  • 打赏
  • 举报
回复
如果只要用户登录时间,错误日志中都有记录的,保存该日志即可
jjdelphi 2005-12-21
  • 打赏
  • 举报
回复
如果等到用户操作数据表,然后从数据表建立触发器记录的话,时间上就不准了。如果用户一直没有操作,就一直不会记录了。这样还不如写个程序,一直在检测syslogins系统表好了,一旦发现就写个记录,但是这样系统开销就大了。
zmjszm 2005-12-21
  • 打赏
  • 举报
回复
如果是用 域安全帐户, 有没有什么表是客户登录后必然要操作的表? 比如用户表[User]中如果有上次登录时间这类字段,每个用户登录进入系统后必然要更新字录。
如果这样,可以在[User]表中写个Trigger 记录下登录客户的安全帐户
Trigger 代码片段
Declare @nt_username nvarchar(128),@nt_domain nvarchar(128),@program_name nvarchar(128),@hostname nvarchar(128)

select @program_name=rtrim(program_name),@hostname=rtrim(hostname),@nt_domain=rtrim(nt_domain),@nt_username=rtrim(nt_username) from master.dbo.sysprocesses with(nolock) where spid=@@spid
zmjszm 2005-12-21
  • 打赏
  • 举报
回复
客户用什么帐户登录呢? Windows 的安全帐户 还是 sqlserver 的帐号, 如果每个客户都是用相同的sqlserver的帐户,你根本区分不出来呀!
jjdelphi 2005-12-21
  • 打赏
  • 举报
回复
不考虑前台自己编写的应用程序。因为数据库服务器面向的是多个数据库,客户端程序不归我们负责。
浩方软件HFWMS 2005-12-21
  • 打赏
  • 举报
回复
在前台程序中控制
if 登陆成功 then
insert 表
end

22,199

社区成员

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

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