-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathDatabaseMappings.xml
More file actions
55 lines (55 loc) · 1.85 KB
/
DatabaseMappings.xml
File metadata and controls
55 lines (55 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?xml version="1.0" ?>
<EnumObject type="DatabaseMapping" impl_type="SqlObject" min_major='7' >
<settings>
<parent_link>
<link parent="Name" local="LoginName" />
</parent_link>
<property_link table = '#loginmappings AS logmap'/>
<prefix>
create table #loginmappings( LoginName sysname NULL, DBName sysname NULL, UserName sysname NULL, AliasName sysname NULL )
declare @db_name nvarchar(512)
declare crs cursor local fast_forward
</prefix>
<version min_major = '7' max_major = '8'>
<prefix>
for ( select name from master.dbo.sysdatabases where 1 = has_dbaccess(name))
</prefix>
</version>
<version min_major = '9'>
<prefix>
for ( select name from sys.databases where 1 = has_dbaccess(name))
</prefix>
</version>
<prefix>
open crs
fetch crs into @db_name
while @@fetch_status >= 0
begin
set @db_name = quotename(@db_name)
</prefix>
<version min_major = '7' max_major = '8'>
<prefix>
exec('use ' + @db_name + ' INSERT #loginmappings select login_name, db_name(), u.name, null from dbo.sysusers u CROSS APPLY (SELECT suser_sname(u.sid) AS login_name) AS ln where ln.login_name is not null')
</prefix>
</version>
<version min_major = '9' >
<prefix>
exec('use ' + @db_name + ' INSERT #loginmappings select login_name, db_name(), u.name, null from sys.database_principals AS u CROSS APPLY (SELECT suser_sname(u.sid) AS login_name) AS ln where ln.login_name is not null')
</prefix>
</version>
<prefix>
fetch crs into @db_name
end
close crs
deallocate crs
</prefix>
<postfix>
drop table #loginmappings
</postfix>
</settings>
<properties>
<property name="LoginName" type="sysname" access="Read">logmap.LoginName</property>
<property name="DBName" type="sysname" access="Read">logmap.DBName</property>
<property name="UserName" type="sysname" access="Read">logmap.UserName</property>
</properties>
</EnumObject>