CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

请问:如何获得指定登录用户能够访问的所有数据库?

楼主cwh2k(川果)2006-07-02 13:47:50 在 MS-SQL Server / 应用实例 提问

各位大虾:  
        我希望通过T-SQL语句获得用户能够访问的所有数据库列表,使用"查询分析器"和"企业管理器"   是可以列出当前登录用户可以访问的数据库列表的。但是如何通过SQL语句获得呢?  
   
        另外,syslogins中的一个问题:   分别执行"select   name   ,loginname   from   syslogins"   和"select   *   from   syslogins",发现   前者name   =   loginname   (但是很显然,dbo的登录名是sa,肯定不会相等),而后者   loginname   =   0.     那么,企业管理器是如何获得   "用户名"和"登录名"的对应的呢?  
        谢谢。  
   
  问题点数:50、回复次数:5Top

1 楼wwh999(印钞机V2.0...开发中....)回复于 2006-07-02 16:02:19 得分 15

关注一下,好像要:  
  1>先获取所有数据库  
  2>逐条判断该数据库是否有登录用的权限...  
   
  以前没整过,现在关注一下。Top

2 楼liangpei2008(笑青天)回复于 2006-07-03 01:05:34 得分 15

--可能是这样吧!  
  Select   A.Name,B.Loginname  
  From   master..syslogins   A   Inner   Join   master..syslogins   B  
  On   SUSER_SID(A.name)=SUSER_SID(B.name)  
   
  --用SUSER_SID函数来获取用户的SID,这样就可以了Top

3 楼wwh999(印钞机V2.0...开发中....)回复于 2006-07-03 08:16:43 得分 10

世界杯,,他要的是已授权的数据库列表...你上面的是登录用户列表..Top

4 楼zjdyzwx(十一月猪)回复于 2006-07-03 09:22:25 得分 10

syslogins中的一个问题:   分别执行"select   name   ,loginname   from   syslogins"   和"select   *   from   syslogins",发现   前者name   =   loginname   (但是很显然,dbo的登录名是sa,肯定不会相等),而后者   loginname   =   0  
  ==========  
  关注!  
    为什么呢?Top

5 楼cwh2k(川果)回复于 2006-07-13 22:10:25 得分 0

谢谢回复,问题已经解决,前面的问题用   sp_MShasdbaccess   就可以了。  
  至于后面的那个问题,我也不知道为什么。  
   
  to   wwh999   :   我开始也是用你这种方法   ,看样子我还不算太离谱   :)Top

相关问题

关键词

得分解答快速导航

  • 帖主:cwh2k
  • wwh999
  • liangpei2008
  • wwh999
  • zjdyzwx

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo