这个问题本身有点难理解,我想在数据库存里知道是哪个用户在操作SQL的,比如说有可能三个人都在同时对同一条记录进行更新,每个人都有可能触发update....insert...delete...但每条 sql执行时,有没有什么变量记录是哪个用户在操作的呢?

解决方案 »

  1.   

    用事件探察器来看??
    或者用LOG EXPLORE来看日志文件
      

  2.   

    LOGEXPLORER或打开事件查看器!
      

  3.   

    查看所有数据库用户登录信息 
    sp_helplogins 查看所有数据库用户所属的角色信息 
    sp_helpsrvrolemember 修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程 更改某个数据对象的用户属主 
    sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 注意: 更改对象名的任一部分都可能破坏脚本和存储过程。 把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本 查看链接服务器 
    sp_helplinkedsrvlogin 查看远端数据库用户登录信息 
    sp_helpremotelogin
      

  4.   

    select suser_sname()  --提取当前是以那一个用户登录的
      

  5.   

    我不能用这些方法找开什么来看,我要做的是:
    update ....完了之后马上要新增一条log,来记录这条记录的更改日志。所以在更新完了后我还要有一条
    insert into work_log values(...)的语句。这东西烦就烦在不能在PB里边写,一定要在存储过程或触发器里边写。
      

  6.   


    给这个啥意思, 我又不用改数据对象的用户属主,也不可能可以改。我想知道哪个用户触发了数据库当前执行那条SQL语句而已
      

  7.   

    设计一个表,专门记录操作日志!当插入,删除,更新数据时!往日志表插入数据!以方便以后查询!select user_name()可以得到是谁操作的!
      

  8.   

    exec
    查看所有数据库用户登录信息 
    sp_helplogins 查看所有数据库用户所属的角色信息 
    sp_helpsrvrolemember 修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程 更改某个数据对象的用户属主 
    sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 注意: 更改对象名的任一部分都可能破坏脚本和存储过程。 把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本 查看链接服务器 
    sp_helplinkedsrvlogin 查看远端数据库用户登录信息 
    sp_helpremotelogin
      

  9.   


    有N个用户同时登录到系统中,select user_name()是select 哪个好?
      

  10.   

    在 SQL SERVER 2005 中,可以使用“事件通知”创建异步触发器,获取执行 DDL、DML 语句的各种信息,包括执行语句的用户帐户/登陆账户等。
      

  11.   

    我得到的是 'DBO'   无语了
      

  12.   


    貌似你们都用sa登陆?或者你可以通过spid来获取用户的机器名称,这样才能确认是谁操作的。
    我现在做的登陆监控程序就是这么来的,发现有人使用Sa或者其他owner用户连接数据库,马上又见警告他,让他滚蛋。
      

  13.   


    不可能是用SA登录的,数据库不是有很多user吗,是用那些ID登录的。当然,DBO,ASPNET这些除外.
      

  14.   

    都说那个是用select user_name()的时候取到的默值
      

  15.   

    select system_user --ksoaksoa为用户名(我刚刚新建的)
      

  16.   

    不行的~~得到的是 'sa'system_user 没用