社区
MS-SQL Server
帖子详情
如何在触发器中获得客户端(winForm)登录后的用户名
xiaoyan21
2012-03-31 09:27:53
如何在触发器中获得客户端(winForm)登录后的用户名?
实现目的:在触发器中保存用户的操作记录
数据库: sqlserver2008
触发器 在 vs2010 SQLServerProject中创建 (基于clr的触发器)
各位大侠有什么好点的解决方案吗?
(注:SQLServerProject不能引用其它非SQLServerProject的项目)
谢谢!
...全文
145
13
打赏
收藏
如何在触发器中获得客户端(winForm)登录后的用户名
如何在触发器中获得客户端(winForm)登录后的用户名? 实现目的:在触发器中保存用户的操作记录 数据库: sqlserver2008 触发器 在 vs2010 SQLServerProject中创建 (基于clr的触发器) 各位大侠有什么好点的解决方案吗? (注:SQLServerProject不能引用其它非SQLServerProject的项目) 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Fonnit
2012-04-04
打赏
举报
回复
登录的时候 把登录用户保存到 CONTEXT_INFO 中 SET CONTEXT_INFO @userid
要用的时候从SYS.SYSPROCESSES表里面取出来。
注意类型转换。
ixkixkix
2012-03-31
打赏
举报
回复
最好在客户端登陆时,将登陆信息保存下来,
比如用户张三登陆,登陆的机器名是 wk1,
以后查询时,按机器名去查就行了,解决多用户的问题,
这个主要是用来做日志用的,记录一些日志信息
xiaoyan21
2012-03-31
打赏
举报
回复
多谢楼上两位!
dawugui
2012-03-31
打赏
举报
回复
[Quote=引用 9 楼 的回复:]
有没有一种可能就是在sqlserver中创建一个用户级的全局变量?类似于session
[/Quote]
1.你如果只有一个用户操作,可在登录后将用户名写到某个表中,然后每次的数据操作后,从这个表去提取数据.
2.如果你是多用户操作,那么每次操作后,就删除改表的内容,把当前用户插入这个表,触发器从这个表去提取数据.
xiaoyan21
2012-03-31
打赏
举报
回复
有没有一种可能就是在sqlserver中创建一个用户级的全局变量?类似于session
dawugui
2012-03-31
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
5楼的方法倒也是可行,只是表太多操作起来有点麻烦。
dawugui(爱新觉罗.毓华) : 肯定还有其它的操作。
[/Quote]我也是那个意思.
表太多也得这么操作.不然每个表写个触发器,同样麻烦.
xiaoyan21
2012-03-31
打赏
举报
回复
5楼的方法倒也是可行,只是表太多操作起来有点麻烦。
dawugui(爱新觉罗.毓华) : 肯定还有其它的操作。
dawugui
2012-03-31
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
后者
问题是,触发器中如何来取得全程变量呢?
[/Quote]
你是只保存这个用户名,还是保存他操作的记录?
如果是保存用户名,貌似用触发器不妥,还不如在操作数据时直接将这个全程变量中的值保存到记录中.
jyh070207
2012-03-31
打赏
举报
回复
将应用程序的用户名设为与sql的用户名.可以用suer_sname()取值,否则,只能通过前台程序给数据用户名,
比如,更新时,update tb set col1 = 'aaa',update_user = '应用程序用户名' where ....
再在触发器的inserted表中取update_user
xiaoyan21
2012-03-31
打赏
举报
回复
后者
问题是,触发器中如何来取得全程变量呢?
dawugui
2012-03-31
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
.....
select SUSER_SNAME () 这是数据库的用户名,我想取的是应用程序的用户名
[/Quote]我想问问你说这个用户名和sql server有没有关系?是指的sql server的用户名?还是你自己程序中编写的登录系统的用户名?如果是前者,如上.如果是后者,使用一个全程变量,登录时将用户名写入全程变量中.后面应该知道怎么操作了吧.
xiaoyan21
2012-03-31
打赏
举报
回复
.....
select SUSER_SNAME () 这是数据库的用户名,我想取的是应用程序的用户名
dawugui
2012-03-31
打赏
举报
回复
用:select SUSER_SNAME ()获取用户名,保存到你的操作记录中.
从新手小白进入
WinForm
编程 (VS2019)
WinForm
框架 是 Windows Form 的简称,是美国微软公司Microsoft开发基于 .NET Framework 平台的桌面运用程序框架,一般使用 C#语言 编写。
WinForm
框架可用于设计窗体和可视控件,采用面向对象语言C#,可快速...
C#
Winform
连接Oracle数据库 , 及角色讲解
注意1:此方法在.NET 4.0之前(包括4.0)是可以的,但在之后版本
中
就不能用了,官方已经声明; 注意2:此方法提供的接口权限不足,例如不能以sysdba身份建立连接,即不支持关键字“dba privil...
企业进销存仓库管理系统的设计与实现(论文+源码)_kaic
本研究成功设计并实现了基于
WinForm
程序的企业进销存仓库管理系统,该系统具备包括商品管理、进货管理、销售管理、库存管理、仓库管理和用户管理等功能,可以有效地提高企业进销存仓库管理的效率和准确度。...
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存
中
的图象显示到
客户端
Microsoft IE WebControls下载地址如何在DATAGRID
中
使用JAVASCRIPT脚本控制DataGrid
中
连接到...
Asp.Net面试(附答案)
1.维护数据库的完整性、一致性、你喜欢用
触发器
还是自写业务逻辑?为什么 答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用
触发器
,这种方式可以保证无论何种业务...
MS-SQL Server
34,576
社区成员
254,587
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章