2011-03-12 52 views
0

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

我还想要查询获取特定用户的权限?

+0

常见....有人帮助我....告诉我如何找到特定用户的权限? PLZ帮助我... – naitik333 2011-03-14 13:22:42

回答

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 
+0

感谢您的答复...但这会给所有的数据库的dbowner名称....但我想所有的数据库创建的特定用户? PLZ给我这个查询...也查询找到用户的权限... – naitik333 2011-03-12 14:04:36

+0

不错.....但你能修改你的查询,以便我得到由不同行和只有数据库中的特定用户创建的所有数据库由该用户创建不是所有的数据库... – naitik333 2011-03-12 14:19:51

0

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

SUSER_SNAME()以及retireve用户名

+0

感谢您的答复...但这将给所有的数据库的dbowner名称....但我想所有的数据库创建的特定用户? PLZ给我这个查询...也查询用户的权限。 – naitik333 2011-03-12 14:20:48