在SQLServer中如何知道现在是以哪个登录名登录进来的,以及如何切换到另外一个登录名,就像Windows的用户切换一样呢?

解决方案 »

  1.   

    SETUSER [ 'username' [ WITH NORESET ] ] 参数
    'username'是当前数据库中所模拟的 SQL Server 或 Microsoft Windows NT® 用户名。如果未指定 username,将重新建立模拟用户的系统管理员的原始标识。WITH NORESET指定后续 SETUSER 语句(未指定 username)不重置为系统管理员。
      

  2.   

    下例显示系统管理员如何采用其他用户的标识。用户 mary 创建了一个名为 computer_types 的表。系统管理员使用 SETUSER 模拟用户 mary 授予用户 joe 访问 computer_types 表的权限。SETUSER 'mary'
    go
    GRANT SELECT ON computer_types TO joe
    go
    SETUSER
      

  3.   


    select b.name as loginname
    from master..sysusers a,master..syslogins b
    where a.sid = b.sid and a.name = CURRENT_USER
    /*sa*/
      

  4.   


    sid这个字段什么含义啊?
      

  5.   


    登录名跟用户名还是有区别吧,那不然要sysusers和syslogins两张表干什么?
      

  6.   


    SELECT    SYSTEM_USER   AS   'Login   Name ',   USER   AS   'User   Name ' 这样行不?
      

  7.   

    还有个系统存储过程应该也可以,sp_helpuser
      

  8.   

    SELECT    SYSTEM_USER  
    SETUSER [ 'username' [ WITH NORESET ] ]