请问:如何获得指定登录用户能够访问的所有数据库?
各位大虾:
我希望通过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




