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:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
|
-- Dieses Verfahren erzeugt einen Schaffung-LOGON-Index für Sie
VERFAHREN [dbo] VERURSACHEN. [sp_dba_security_revlogin]
@login_name sysname = NULL,
@script_server_roles tinyint = 1
WIE
@name sysname ERKLÄREN
@xstatus int ERKLÄREN
Das varbinary @binpwd ERKLÄREN (256)
@txtpwd sysname ERKLÄREN
Das varchar @tmpstr ERKLÄREN (256)
@SID_varbinary varbinary ERKLÄREN (85)
Das @SID_string ERKLÄREN varchar (256)
WENN (@LOGIN_NAME IST NULL), ANFANGEN
Login_curs CURSOR FÜR ERKLÄREN
SID, Namen, 2 xstatus, password_hash VORWÄHLEN VON sys.sql_logins
WO „ <> sa“ und is_disabled = 0 nennen
Anschluss aller
SID, Namen, 4 xstatus, Null vorwählen von sys.server_principals
wo Art = „u“ und is_disabled = 0
ENDE ANFANGEN SONST N
Login_curs CURSOR FÜR ERKLÄREN
SID, Namen, 2 xstatus, password_hash VORWÄHLEN VON sys.sql_logins
WO „ <> sa“ und is_disabled = 0 UND Name = @login_name nennen
Anschluss aller
SID, Namen, 4 xstatus, Null vorwählen von sys.server_principals
wo Art = „u“ und is_disabled = 0 UND Name = @login_name
ENDE
Login_curs ÖFFNEN
ZUNÄCHST von den login_curs IN @SID_varbinary HOLEN, @name, @xstatus, @binpwd
WENN (@@fetch_status = -1)
ANFANGEN
Keine gefundenen LOGON DRUCKEN „.“
Login_curs SCHLIESSEN
Login_curs FREIGEBEN
-1 ZURÜCKBRINGEN
ENDE
@tmpstr EINSTELLEN = „/* sp_help_revlogin Index“
@tmpstr DRUCKEN
@tmpstr EINSTELLEN = „** erzeugt“
+ BEKEHRTER (varchar, GETDATE ()) + "ON" + @@SERVERNAME + „*“
DRUCK @tmpstr
DRUCK ''
DRUCK „ERKLÄREN @pwd sysname“
WÄHREND (@@FETCH_STATUS <> -1) ANFANGEN
WENN (@@FETCH_STATUS <> -2) ANFANGEN
DRUCKEN ''
@tmpstr EINSTELLEN = „-- LOGON: “ + @name
DRUCK @tmpstr
WENN (@XSTATUS U. 4) = 4 ANFANGEN N -- NT beglaubigtes Konto/Gruppe
WENN (@XSTATUS U. 1) = 1 ANFANGEN N -- NT-LOGON verweigert Zugang
@tmpstr EINSTELLEN = 'EXEC Meister. .sp_denylogin ''' + @name + ''''
@tmpstr DRUCKEN
ENDE ANFANGEN SONST N -- NT-LOGON hat Zugang
@tmpstr EINSTELLEN = 'EXEC Meister. .sp_grantlogin ''' + @name + ''''
@tmpstr DRUCKEN
ENDE
ENDE ANFANGEN SONST N -- SQL-Serverauthentisierung
WENN (@BINPWD IST NICHT UNGÜLTIG), ANFANGEN -- Nichtnullkennwort
EXEC sp_dba_security_scriptLogin @binpwd, @txtpwd HERAUS
WENN (@XSTATUS U. 2048) = 2048 ANFANGEN
@tmpstr EINSTELLEN = „EINSTELLT das @pwd = BEKEHRTEN (varchar (256),“ + @txtpwd + ")“
ENDE ANFANGEN SONST N
@tmpstr EINSTELLEN = „EINSTELLT das @pwd = BEKEHRTEN (varbinary (256),“ + @txtpwd + ")“
ENDE
DRUCK @tmpstr
EXEC sp_dba_security_scriptLogin @SID_varbinary, HERAUS @SID_string
@tmpstr EINSTELLEN = 'EXEC Meister. .sp_addlogin ''' + @name
+ ''', @pwd, @sid = „+ @SID_string +“, @encryptopt = '
ENDE ANFANGEN SONST N -- Ungültiges Kennwort
EXEC sp_dba_security_scriptLogin @SID_varbinary, HERAUS @SID_string
@tmpstr EINSTELLEN = 'EXEC Meister. .sp_addlogin ''' + @name
+ ''', NULL, @sid = „+ @SID_string +“, @encryptopt = '
ENDE
WENN (@XSTATUS U. 2048) = 2048 ANFANGEN
-- LOGON verbessert von 6.5
@tmpstr = @tmpstr + ''' skip_encryption_old ''' EINSTELLEN
ENDE ANFANGEN SONST N
@tmpstr = @tmpstr + ''' skip_encryption ''' EINSTELLEN
ENDE
DRUCK @tmpstr
-- Handgriffbedienerrollen:
WENN ISNULL (@SCRIPT_SERVER_ROLES, 1) = 1 ANFANGEN N
WENN (@XSTATUS U. 16) = 16 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' sysadmin '''
@tmpstr DRUCKEN
ENDE
WENN (@XSTATUS U. 32) = 32 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' securityadmin '''
@tmpstr DRUCKEN
ENDE
WENN (@XSTATUS U. 64) = 64 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' serveradmin '''
@tmpstr DRUCKEN
ENDE
WENN (@XSTATUS U. 128) = 128 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' setupadmin '''
@tmpstr DRUCKEN
ENDE
WENN (@XSTATUS U. 256) = 256 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' processadmin '''
@tmpstr DRUCKEN
ENDE
WENN (@XSTATUS U. 512) = 512 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' diskadmin '''
@tmpstr DRUCKEN
ENDE
WENN (@XSTATUS U. 1024) = 1024 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' dbcreator '''
@tmpstr DRUCKEN
ENDE
WENN (@XSTATUS U. 4096) = 4096 ANFANGEN
@tmpstr EINSTELLEN = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' bulkadmin '''
@tmpstr DRUCKEN
ENDE
ENDE
-- Enden-Handgriffbedienerrollen
ENDE
ENDE
ZUNÄCHST von den login_curs IN @SID_varbinary HOLEN, @name, @xstatus, @binpwd
ENDE
NAHE login_curs
Login_curs FREIGEBEN
RÜCKKEHR 0
GEHEN
-- Dieses regelt die Waise-LOGON
VERWENDEN [db_dba]
GEHEN
/****** Gegenstand: StoredProcedure [dbo]. [USP_DBA_FixOrphanedLogins] Index-Datum: 06/29/2010 12:07: 23 ******/
ANSI_NULLS AN EINSTELLEN
GEHEN
QUOTED_IDENTIFIER AN EINSTELLEN
GEHEN
Verfahren [dbo] verursachen. [USP_DBA_FixOrphanedLogins]
wie
anfangen
nocount an einstellen
/** Die LOGON zeigen, die sind Drohung **/
Das varchar @Collation ERKLÄREN (100),
@SQL VARCHAR (2000),
@rc int
TABELLE ##TempSync (DB_NME Varchar (50), DBUserName varchar (50), SysLoginName VERURSACHEN varchar (50))
@Collation = BEKEHRTEN (SYSNAME, DatabasePropertyEx („Meister“, „Kollation ") VORWÄHLEN)
@SQL EINSTELLEN = 'GEBRAUCH [?]
VORWÄHLEN ''? '' DB_NME, A.name DBUserName, B.log inname SysLoginName
VON sysusers A
Master.dbo.syslogins B VERBINDEN
AUF A.name sortieren „+ @Collation +“ = B.Name
Master.dbo.sysdatabases C VERBINDEN
AUF C.Name = ''? '' WO issqluser = 1
UND (A.sid IST NICHT UNGÜLTIG
UND A.sid <> 0x0)
UND suser_sname (A.sid) IST UNGÜLTIG
UND (C.status u. 32) = 0 --Laden
UND (C.status u. 64) = 0 --vor Wiederaufnahme
UND (C.status u. 128) = 0 --Wiederherstellung
UND (C.status u. 256) = 0 --nicht zurückgewonnen
UND (C.status u. 512) = 0 --indirekt
UND (C.status u. 1024) = 0 --nur gelesen
AUFTRAG DURCH A.name
EINSATZ in ##TempSync EXEC sp_msforeachdb @SQL
-- * VOM ##TempSync VORWÄHLEN
@rc = @@rowcount einstellen
TABELLE ##TempSync FALLENLASSEN
wenn @rc = 0
anfangen
raiserror („keine verwaisten behandelt zu werden LOGON. “, - 1, - 1)
Rückkehr 0
Ende
/** Regeln verwaiste LOGON **/
@Collation =CONVERT (SYSNAME, DatabasePropertyEx („Meister“, „Kollation ") VORWÄHLEN)
@SQL EINSTELLEN = 'GEBRAUCH [?]
Das varchar @DBUserName ERKLÄREN (50)
Das varchar @SysLoginName ERKLÄREN (50)
SyncDBLogins CURSOR FÜR AUSERWÄHLTES A.name DBUserName, B.log inname SysLoginName ERKLÄREN
Von den sysusers sortieren EINE VERBINDUNG master.dbo.syslogins B AUF A.name '+ @Collation +
'= VERBINDEN B.Name master.dbo.sysdatabases C AUF C.Name = ''? ''
WO issqluser = 1 UND (A.sid IST NICHT UNGÜLTIG UND A.sid <> 0x0) UND suser_sname (A.sid) UNGÜLTIG IST
UND (C.status u. 32) = 0 --Laden
UND (C.status u. 64) = 0 --vor Wiederaufnahme
UND (C.status u. 128) = 0 --Wiederherstellung
UND (C.status u. 256) = 0 --nicht zurückgewonnen
UND (C.status u. 512) = 0 --indirekt
UND (C.status u. 1024) = 0 --nur gelesen
AUFTRAG DURCH A.name
SyncDBLogins ÖFFNEN
ZUNÄCHST VON SyncDBLogins IN @DBUserName, @SysLoginName HOLEN
WÄHREND @@FETCH_STATUS = 0 ANFANGEN
EXEC sp_change_users_login '' update_one '', @DBUserName, @SysLoginName
ZUNÄCHST VON SyncDBLogins IN @DBUserName, @SysLoginName HOLEN
ENDE
NAHES SyncDBLogins
SyncDBLogins FREIGEBEN
EXEC sp_msforeachdb @SQL
Rückkehr 0
Ende
GEHEN
|