查询数据库和权限

时间:2011-03-12 13:50:18

标签: sql database sql-server-2008 nsuserdefaults privileges

好的..我正在使用sql server 2008 ...我想要一个sql查询来查找由特定登录用户创建的不同数据库???例如。假设user1已经创建了数据库db1和db2。和user2创建数据库db3和db4 ..比查询应该给出结果db1,db2 for user1和db3,db4 for user2 ...

我也希望查询获取特定用户的权限???

2 个答案:

答案 0 :(得分:0)

我能想到的最接近的是当前所有者,它通常是数据库的创建者。你可以查询:

select  db.name
,       l.name
from    sys.databases db
join    sys.syslogins l
on      db.owner_sid = l.sid

要查询每个用户的逗号分隔列表,请尝试:

select  l.name
,       stuff(db.list,len(db.list),1,'')
from    sys.syslogins l
cross apply
        (
        select  db.name + ','
        from    sys.databases db
        where   db.owner_sid = l.sid
        for xml path('')
        ) db(list)
where   db.list is not null

答案 1 :(得分:0)

我不知道为什么你需要查询每个数据库的用户所有者 但我希望这可以帮助你: SELECT名称,SUSER_SNAME(owner_sid) 来自sys.databases

SUSER_SNAME()退出用户名