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:
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:
|
-- Deze procedure zal cre�ërt logins manuscript voor u produceren
CRE�ëR PROCEDURE [dbo]. [sp_dba_security_revlogin]
@login_name sysname = VERKLAAR nietig,
@script_server_roles tinyint = 1
ZOALS
VERKLAAR @name sysname
VERKLAAR @xstatus int.
VERKLAAR @binpwd varbinary (256)
VERKLAAR @txtpwd sysname
VERKLAAR @tmpstr varchar (256)
VERKLAAR @SID_varbinary varbinary (85)
VERKLAAR @SID_string varchar (256)
ALS (@LOGIN_NAME IS ONGELDIG) BEGIN
VERKLAAR LOGIN_CURS CURSEUR VOOR
SELECTEER sid, naam, xstatus 2, password_hash VAN sys.sql_logins
WAAR is_disabled <> de naam „sa“ en = 0
unie allen
selecteer sid, naam, xstatus 4, ongeldig van sys.server_principals
waar is_disabled het type = „u“ en = 0
HET EIND BEGINT ANDERS
VERKLAAR LOGIN_CURS CURSEUR VOOR
SELECTEER sid, naam, xstatus 2, password_hash VAN sys.sql_logins
WAAR is_disabled <> de naam „sa“ en = 0 EN naam = @login_name
unie allen
selecteer sid, naam, xstatus 4, ongeldig van sys.server_principals
waar is_disabled het type = „u“ en = 0 EN naam = @login_name
EIND
OPEN login_curs
HAAL DAARNA VAN LOGIN_CURS IN @SID_VARBINARY, @NAME, @XSTATUS, @BINPWD
ALS (@@fetch_status = -1)
BEGIN
DRUK „Geen gevonden login.“
SLUIT login_curs
DEALLOCATE login_curs
KEER -1 terug
EIND
REEKS @tmpstr = „/* sp_help_revlogin manuscript“
DRUK @tmpstr
REEKS @tmpstr = „Geproduceerde **“
+ Varchar BEKEERLING (, GETDATE ()) + "aan" + @@SERVERNAME + „*/“
DRUK @tmpstr
DRUK ''
De DRUK „VERKLAART @pwd sysname“
TERWIJL (@@FETCH_STATUS <> -1) BEGIN
ALS (@@FETCH_STATUS <> -2) BEGIN
DRUK ''
PLAATS @tmpstr = „-- Login: “ + @name
DRUK @tmpstr
ALS (@XSTATUS & 4) = 4 BEGINNEN -- NT voor authentiek verklaarde rekening/groep
ALS (@XSTATUS & 1) = 1 BEGINT -- NT login wordt ontzegd toegang
REEKS @tmpstr = 'EXEC meester. .sp_denylogin ''' + @name + ''''
DRUK @tmpstr
HET EIND BEGINT ANDERS -- NT login heeft toegang
REEKS @tmpstr = 'EXEC meester. .sp_grantlogin ''' + @name + ''''
DRUK @tmpstr
EIND
HET EIND BEGINT ANDERS -- SQL de authentificatie van de Server
ALS (@BINPWD IS NIET ONGELDIG) BEGIN -- Niet-krachteloos wachtwoord
EXEC sp_dba_security_scriptLogin @binpwd, @txtpwd UIT
ALS (@XSTATUS & 2048) = 2048 BEGINT
DE REEKS @TMPSTR = „PLAATSTE @PWD = VARCHAR BEKEERLING ((256),“ + @TXTPWD + „)“
HET EIND BEGINT ANDERS
DE REEKS @TMPSTR = „PLAATSTE @PWD = VARBINARY BEKEERLING ((256),“ + @TXTPWD + „)“
EIND
DRUK @tmpstr
@SID_varbinary EXEC sp_dba_security_scriptLogin, UIT @SID_string
REEKS @tmpstr = 'EXEC meester. .sp_addlogin ''' + @name
+ ''', @pwd, @sid = „+ @SID_string +“, @encryptopt = '
HET EIND BEGINT ANDERS -- Ongeldig wachtwoord
@SID_varbinary EXEC sp_dba_security_scriptLogin, UIT @SID_string
REEKS @tmpstr = 'EXEC meester. .sp_addlogin ''' + @name
+ ONGELDIGE ''', @sid = „+ @SID_string +“, @encryptopt = '
EIND
ALS (@XSTATUS & 2048) = 2048 BEGINT
-- login promotie van 6.5
REEKS @tmpstr = @tmpstr + ''' skip_encryption_old '''
HET EIND BEGINT ANDERS
REEKS @tmpstr = @tmpstr + ''' skip_encryption '''
EIND
DRUK @tmpstr
-- De serverrollen van het handvat:
ALS ISNULL (@SCRIPT_SERVER_ROLES, 1) = 1 BEGINT
ALS (@XSTATUS & 16) = 16 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' sysadmin '''
DRUK @tmpstr
EIND
ALS (@XSTATUS & 32) = 32 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' securityadmin '''
DRUK @tmpstr
EIND
ALS (@XSTATUS & 64) = 64 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' serveradmin '''
DRUK @tmpstr
EIND
ALS (@XSTATUS & 128) = 128 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' setupadmin '''
DRUK @tmpstr
EIND
ALS (@XSTATUS & 256) = 256 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' processadmin '''
DRUK @tmpstr
EIND
ALS (@XSTATUS & 512) = 512 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' diskadmin '''
DRUK @tmpstr
EIND
ALS (@XSTATUS & 1024) = 1024 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' dbcreator '''
DRUK @tmpstr
EIND
ALS (@XSTATUS & 4096) = 4096 BEGINNEN
REEKS @tmpstr = 'EXEC sp_addsrvrolemember ''' + @name + ''', '' bulkadmin '''
DRUK @tmpstr
EIND
EIND
-- De serverrollen van het Handvat van het eind
EIND
EIND
HAAL DAARNA VAN LOGIN_CURS IN @SID_VARBINARY, @NAME, @XSTATUS, @BINPWD
EIND
DICHTE login_curs
DEALLOCATE login_curs
TERUGKEER 0
GA
-- Dit zal de wezen logins bevestigen
GEBRUIK [db_dba]
GA
/****** Heb bezwaar: StoredProcedure [dbo]. [USP_DBA_FixOrphanedLogins] de Datum van het Manuscript: het 12:07 van 06/29/2010: 23 ******/
VASTGESTELDE ANSI_NULLS
GA
PLAATS QUOTED_IDENTIFIER
GA
Cre�ër procedure [dbo]. [USP_DBA_FixOrphanedLogins]
zoals
begin
plaats nocount
/Toont ** logins die bedreiging ** /zullen zijn
VERKLAAR @Collation varchar (100),
@SQL VARCHAR (2000),
@rc int.
CRE�ëR LIJST ##TempSync (DB_NME Varchar (50), varchar DBUserName (50), varchar SysLoginName (50))
SELECTEER @Collation = BEKEERLING (SYSNAME, DatabasePropertyEx („meester“, „Collatie“))
PLAATS @SQL = 'GEBRUIK [?]
SELECTEER ''? '' DB_NME, A.name DBUserName, B.log inname SysLoginName
VAN sysusers A
SLUIT me aan bij master.dbo.syslogins B
OP A.name breng „+ @Collation +“ = B.Name bij elkaar
SLUIT me aan bij master.dbo.sysdatabases C
OP C.Name = ''? '' WAAR issqluser = 1
EN (A.sid IS NIET ONGELDIG
EN A.sid <> 0x0)
EN suser_sname (A.sid) IS ONGELDIG
EN (C.status & 32) = 0 --lading
EN (C.status & 64) = 0 --pre terugwinning
EN (C.status & 128) = 0 --het terugkrijgen
EN (C.status & 256) = 0 --teruggekregen niet
EN (C.status & 512) = 0 --offline
EN (C.status & 1024) = 0 --lees slechts
ORDE DOOR A.name
TUSSENVOEGSEL in ##TempSync EXEC sp_msforeachdb @SQL
-- SELECTEER * UIT ##TempSync
plaats @rc = @@rowcount
LAAT VALLEN LIJST ##TempSync
als @rc = 0
begin
raiserror („Geen Orphaned te behandelen Logins. “, - 1, - 1)
terugkeer 0
eind
/Orphaned de Moeilijke situatie ** logins **/
SELECTEER @Collation =CONVERT (SYSNAME, DatabasePropertyEx („meester“, „Collatie“))
PLAATS @SQL = 'GEBRUIK [?]
VERKLAAR @DBUserName varchar (50)
VERKLAAR @SysLoginName varchar (50)
VERKLAAR CURSEUR SyncDBLogins VOOR UITGEZOCHTE A.name DBUserName, B.log inname SysLoginName
VAN sysusers brengt JOIN master.dbo.syslogins B OP A.name '+ @Collation + bij elkaar
'= SLUITEN aan B.Name zich bij master.dbo.sysdatabases C OP C.Name = ''? ''
WAAR issqluser = 1 EN (A.sid IS NIET ONGELDIG EN A.sid <> 0x0) EN suser_sname (A.sid) ONGELDIG IS
EN (C.status & 32) = 0 --Lading
EN (C.status & 64) = 0 --pre terugwinning
EN (C.status & 128) = 0 --het terugkrijgen
EN (C.status & 256) = 0 --teruggekregen niet
EN (C.status & 512) = 0 --offline
EN (C.status & 1024) = 0 --lees slechts
ORDE DOOR A.name
OPEN SyncDBLogins
HAAL DAARNA VAN SyncDBLogins IN @DBUserName, @SysLoginName
TERWIJL @@FETCH_STATUS = 0 BEGINNEN
EXEC sp_change_users_login '' update_one '', @DBUserName, @SysLoginName
HAAL DAARNA VAN SyncDBLogins IN @DBUserName, @SysLoginName
EIND
DICHTE SyncDBLogins
DEALLOCATE SyncDBLogins
EXEC sp_msforeachdb @SQL
terugkeer 0
eind
GA
|