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

cwh2k 2006-07-02 01:47:50
各位大虾:
我希望通过T-SQL语句获得用户能够访问的所有数据库列表,使用"查询分析器"和"企业管理器" 是可以列出当前登录用户可以访问的数据库列表的。但是如何通过SQL语句获得呢?

另外,syslogins中的一个问题: 分别执行"select name ,loginname from syslogins" 和"select * from syslogins",发现 前者name = loginname (但是很显然,dbo的登录名是sa,肯定不会相等),而后者 loginname = 0. 那么,企业管理器是如何获得 "用户名"和"登录名"的对应的呢?
谢谢。

...全文
157 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwh2k 2006-07-13
  • 打赏
  • 举报
回复
谢谢回复,问题已经解决,前面的问题用 sp_MShasdbaccess 就可以了。
至于后面的那个问题,我也不知道为什么。

to wwh999 : 我开始也是用你这种方法 ,看样子我还不算太离谱 :)
十一月猪 2006-07-03
  • 打赏
  • 举报
回复
syslogins中的一个问题: 分别执行"select name ,loginname from syslogins" 和"select * from syslogins",发现 前者name = loginname (但是很显然,dbo的登录名是sa,肯定不会相等),而后者 loginname = 0
==========
关注!
为什么呢?
wwh999 2006-07-03
  • 打赏
  • 举报
回复
世界杯,,他要的是已授权的数据库列表...你上面的是登录用户列表..
liangpei2008 2006-07-03
  • 打赏
  • 举报
回复
--可能是这样吧!
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,这样就可以了
wwh999 2006-07-02
  • 打赏
  • 举报
回复
关注一下,好像要:
1>先获取所有数据库
2>逐条判断该数据库是否有登录用的权限...

以前没整过,现在关注一下。

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧