1 |
object DatabaseData: TDatabaseData |
2 |
OldCreateOrder = False |
3 |
Height = 552 |
4 |
HorizontalOffset = 645 |
5 |
VerticalOffset = 400 |
6 |
Width = 730 |
7 |
PPI = 96 |
8 |
object IBDatabase1: TIBDatabase |
9 |
Connected = False |
10 |
AfterConnect = IBDatabase1AfterConnect |
11 |
AfterDisconnect = IBDatabase1AfterDisconnect |
12 |
BeforeDisconnect = IBDatabase1BeforeDisconnect |
13 |
OnLogin = IBDatabase1Login |
14 |
CreateIfNotExists = False |
15 |
AllowStreamedConnected = False |
16 |
DatabaseName = 'employee' |
17 |
Params.Strings = ( |
18 |
'lc_ctype=UTF8' |
19 |
'user_name=SYSDBA' |
20 |
'sql_role_name=RDB$ADMIN' |
21 |
) |
22 |
DefaultTransaction = CurrentTransaction |
23 |
IdleTimer = 0 |
24 |
TraceFlags = [] |
25 |
UseDefaultSystemCodePage = False |
26 |
left = 40 |
27 |
top = 24 |
28 |
end |
29 |
object CurrentTransaction: TIBTransaction |
30 |
Active = False |
31 |
DefaultDatabase = IBDatabase1 |
32 |
Params.Strings = ( |
33 |
'read_committed' |
34 |
'rec_version' |
35 |
'nowait' |
36 |
) |
37 |
AfterTransactionEnd = CurrentTransactionAfterTransactionEnd |
38 |
left = 168 |
39 |
top = 24 |
40 |
end |
41 |
object ExecDDL: TIBSQL |
42 |
Database = IBDatabase1 |
43 |
GenerateParamNames = False |
44 |
UniqueParamNames = False |
45 |
ParamCheck = True |
46 |
SQL.Strings = ( |
47 |
'' |
48 |
) |
49 |
Transaction = CurrentTransaction |
50 |
left = 152 |
51 |
top = 208 |
52 |
end |
53 |
object DatabaseQuery: TIBQuery |
54 |
AllowAutoActivateTransaction = False |
55 |
Database = IBDatabase1 |
56 |
Transaction = CurrentTransaction |
57 |
AfterOpen = DatabaseQueryAfterOpen |
58 |
BeforeClose = DatabaseQueryBeforeClose |
59 |
BufferChunks = 1000 |
60 |
CachedUpdates = False |
61 |
EnableStatistics = False |
62 |
GenerateParamNames = False |
63 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
64 |
MasterDetailDelay = 0 |
65 |
SQL.Strings = ( |
66 |
'SELECT * FROM RDB$DATABASE, MON$DATABASE' |
67 |
) |
68 |
Params = <> |
69 |
DataSetCloseAction = dcSaveChanges |
70 |
left = 288 |
71 |
top = 24 |
72 |
end |
73 |
object DBCharSet: TIBQuery |
74 |
AllowAutoActivateTransaction = False |
75 |
Database = IBDatabase1 |
76 |
Transaction = CurrentTransaction |
77 |
AfterClose = DBCharSetAfterClose |
78 |
BeforeOpen = DBCharSetBeforeOpen |
79 |
AutoCommit = acCommitRetaining |
80 |
BufferChunks = 1000 |
81 |
CachedUpdates = False |
82 |
EnableStatistics = False |
83 |
GenerateParamNames = False |
84 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
85 |
MasterDetailDelay = 0 |
86 |
SQL.Strings = ( |
87 |
'Select Trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME' |
88 |
' From RDB$DATABASE A' |
89 |
) |
90 |
Params = <> |
91 |
UpdateObject = UpdateCharSet |
92 |
DataSetCloseAction = dcSaveChanges |
93 |
left = 424 |
94 |
top = 32 |
95 |
end |
96 |
object ShadowFiles: TIBQuery |
97 |
AllowAutoActivateTransaction = False |
98 |
Database = IBDatabase1 |
99 |
Transaction = CurrentTransaction |
100 |
OnCalcFields = ShadowFilesCalcFields |
101 |
BufferChunks = 1000 |
102 |
CachedUpdates = False |
103 |
EnableStatistics = False |
104 |
GenerateParamNames = False |
105 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
106 |
MasterDetailDelay = 0 |
107 |
SQL.Strings = ( |
108 |
'Select * From RDB$Files Where RDB$Shadow_Number <> 0 ' |
109 |
'Order by RDB$Shadow_Number, RDB$FILE_SEQUENCE' |
110 |
) |
111 |
Params = <> |
112 |
DataSetCloseAction = dcDiscardChanges |
113 |
left = 32 |
114 |
top = 208 |
115 |
object ShadowFilesRDBFILE_NAME: TIBStringField |
116 |
FieldKind = fkData |
117 |
FieldName = 'RDB$FILE_NAME' |
118 |
Index = 0 |
119 |
LookupCache = False |
120 |
ProviderFlags = [pfInUpdate, pfInWhere] |
121 |
ReadOnly = False |
122 |
Required = False |
123 |
Size = 253 |
124 |
end |
125 |
object ShadowFilesRDBFILE_SEQUENCE: TSmallintField |
126 |
FieldKind = fkData |
127 |
FieldName = 'RDB$FILE_SEQUENCE' |
128 |
Index = 1 |
129 |
LookupCache = False |
130 |
Origin = 'RDB$FILES.RDB$FILE_SEQUENCE' |
131 |
ProviderFlags = [pfInUpdate, pfInWhere] |
132 |
ReadOnly = False |
133 |
Required = False |
134 |
end |
135 |
object ShadowFilesRDBFILE_START: TIntegerField |
136 |
FieldKind = fkData |
137 |
FieldName = 'RDB$FILE_START' |
138 |
Index = 2 |
139 |
LookupCache = False |
140 |
Origin = 'RDB$FILES.RDB$FILE_START' |
141 |
ProviderFlags = [pfInUpdate, pfInWhere] |
142 |
ReadOnly = False |
143 |
Required = False |
144 |
end |
145 |
object ShadowFilesRDBFILE_LENGTH: TIntegerField |
146 |
FieldKind = fkData |
147 |
FieldName = 'RDB$FILE_LENGTH' |
148 |
Index = 3 |
149 |
LookupCache = False |
150 |
Origin = 'RDB$FILES.RDB$FILE_LENGTH' |
151 |
ProviderFlags = [pfInUpdate, pfInWhere] |
152 |
ReadOnly = False |
153 |
Required = False |
154 |
end |
155 |
object ShadowFilesRDBFILE_FLAGS: TSmallintField |
156 |
FieldKind = fkData |
157 |
FieldName = 'RDB$FILE_FLAGS' |
158 |
Index = 4 |
159 |
LookupCache = False |
160 |
Origin = 'RDB$FILES.RDB$FILE_FLAGS' |
161 |
ProviderFlags = [pfInUpdate, pfInWhere] |
162 |
ReadOnly = False |
163 |
Required = False |
164 |
end |
165 |
object ShadowFilesRDBSHADOW_NUMBER: TSmallintField |
166 |
FieldKind = fkData |
167 |
FieldName = 'RDB$SHADOW_NUMBER' |
168 |
Index = 5 |
169 |
LookupCache = False |
170 |
Origin = 'RDB$FILES.RDB$SHADOW_NUMBER' |
171 |
ProviderFlags = [pfInUpdate, pfInWhere] |
172 |
ReadOnly = False |
173 |
Required = False |
174 |
end |
175 |
object ShadowFilesFileMode: TStringField |
176 |
FieldKind = fkCalculated |
177 |
FieldName = 'FileMode' |
178 |
Index = 6 |
179 |
LookupCache = False |
180 |
ProviderFlags = [pfInUpdate, pfInWhere] |
181 |
ReadOnly = False |
182 |
Required = False |
183 |
end |
184 |
end |
185 |
object SecGlobalAuth: TIBQuery |
186 |
AllowAutoActivateTransaction = False |
187 |
Database = IBDatabase1 |
188 |
Transaction = CurrentTransaction |
189 |
BufferChunks = 1000 |
190 |
CachedUpdates = False |
191 |
EnableStatistics = False |
192 |
GenerateParamNames = False |
193 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
194 |
MasterDetailDelay = 0 |
195 |
SQL.Strings = ( |
196 |
'Select count(*) as Mappings' |
197 |
'From SEC$GLOBAL_AUTH_MAPPING A' |
198 |
'Where SEC$MAP_NAME = ''AutoAdminImplementationMapping''' |
199 |
) |
200 |
Params = <> |
201 |
DataSetCloseAction = dcDiscardChanges |
202 |
left = 288 |
203 |
top = 112 |
204 |
end |
205 |
object CharSetLookup: TIBQuery |
206 |
AllowAutoActivateTransaction = False |
207 |
Database = IBDatabase1 |
208 |
Transaction = CurrentTransaction |
209 |
BufferChunks = 1000 |
210 |
CachedUpdates = False |
211 |
EnableStatistics = False |
212 |
GenerateParamNames = False |
213 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
214 |
MasterDetailDelay = 0 |
215 |
SQL.Strings = ( |
216 |
'Select trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME' |
217 |
' From' |
218 |
'RDB$CHARACTER_SETS A order by 1' |
219 |
'' |
220 |
) |
221 |
Params = <> |
222 |
DataSetCloseAction = dcDiscardChanges |
223 |
left = 160 |
224 |
top = 104 |
225 |
end |
226 |
object DBSecFiles: TIBQuery |
227 |
AllowAutoActivateTransaction = False |
228 |
Database = IBDatabase1 |
229 |
Transaction = CurrentTransaction |
230 |
BufferChunks = 1000 |
231 |
CachedUpdates = False |
232 |
EnableStatistics = False |
233 |
GenerateParamNames = False |
234 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
235 |
MasterDetailDelay = 0 |
236 |
SQL.Strings = ( |
237 |
'Select * From RDB$Files Where RDB$Shadow_Number is null or RDB$Shadow_Number = 0 ' |
238 |
'Order by RDB$FILE_SEQUENCE' |
239 |
) |
240 |
Params = <> |
241 |
DataSetCloseAction = dcDiscardChanges |
242 |
left = 32 |
243 |
top = 104 |
244 |
end |
245 |
object UpdateCharSet: TIBUpdate |
246 |
RefreshSQL.Strings = ( |
247 |
'Select Trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME' |
248 |
' From RDB$DATABASE A' |
249 |
) |
250 |
OnApplyUpdates = UpdateCharSetApplyUpdates |
251 |
left = 424 |
252 |
top = 104 |
253 |
end |
254 |
object IBDatabaseInfo: TIBDatabaseInfo |
255 |
Database = IBDatabase1 |
256 |
left = 280 |
257 |
top = 200 |
258 |
end |
259 |
object AttmtQuery: TIBQuery |
260 |
AllowAutoActivateTransaction = False |
261 |
Database = IBDatabase1 |
262 |
Transaction = CurrentTransaction |
263 |
BufferChunks = 1000 |
264 |
CachedUpdates = False |
265 |
EnableStatistics = False |
266 |
GenerateParamNames = False |
267 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
268 |
MasterDetailDelay = 0 |
269 |
SQL.Strings = ( |
270 |
'Select * from MON$ATTACHMENTS' |
271 |
'Where MON$ATTACHMENT_ID = CURRENT_CONNECTION' |
272 |
) |
273 |
Params = <> |
274 |
DataSetCloseAction = dcDiscardChanges |
275 |
left = 544 |
276 |
top = 112 |
277 |
end |
278 |
object TableNameLookup: TIBQuery |
279 |
AllowAutoActivateTransaction = False |
280 |
Database = IBDatabase1 |
281 |
Transaction = CurrentTransaction |
282 |
BufferChunks = 1000 |
283 |
CachedUpdates = False |
284 |
EnableStatistics = False |
285 |
GenerateParamNames = False |
286 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
287 |
MasterDetailDelay = 0 |
288 |
SQL.Strings = ( |
289 |
'SELECT r.RDB$RELATION_ID,' |
290 |
' trim(r.RDB$RELATION_NAME) as RDB$RELATION_NAME' |
291 |
'FROM RDB$RELATIONS r' |
292 |
) |
293 |
Params = <> |
294 |
DataSetCloseAction = dcDiscardChanges |
295 |
left = 288 |
296 |
top = 283 |
297 |
end |
298 |
object UserList: TIBQuery |
299 |
AllowAutoActivateTransaction = False |
300 |
Database = IBDatabase1 |
301 |
Transaction = CurrentTransaction |
302 |
AfterInsert = UserListAfterInsert |
303 |
AfterOpen = UserListAfterOpen |
304 |
AfterPost = UserListAfterPost |
305 |
AfterScroll = UserListAfterScroll |
306 |
BeforeClose = UserListBeforeClose |
307 |
BufferChunks = 1000 |
308 |
CachedUpdates = False |
309 |
EnableStatistics = False |
310 |
GenerateParamNames = False |
311 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
312 |
MasterDetailDelay = 0 |
313 |
SQL.Strings = ( |
314 |
'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,' |
315 |
'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as SEC$USER_NAME, A.SEC$MIDDLE_NAME,' |
316 |
'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,' |
317 |
'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,' |
318 |
'case when Count(B.MON$ATTACHMENT_ID) > 0 then true else false end as LoggedIn,' |
319 |
'case When C.SEC$USER is not null then true else false end as DBCreator' |
320 |
'From SEC$USERS A' |
321 |
'Left Outer Join MON$ATTACHMENTS B' |
322 |
'On A.SEC$USER_NAME = B.MON$USER' |
323 |
'Left Outer Join SEC$DB_CREATORS C on C.SEC$USER = A.SEC$USER_NAME' |
324 |
'Group By A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,' |
325 |
'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,' |
326 |
'A.SEC$FIRST_NAME, A.SEC$LAST_NAME, C.SEC$USER' |
327 |
) |
328 |
Params = <> |
329 |
UpdateObject = UpdateUsers |
330 |
DataSetCloseAction = dcSaveChanges |
331 |
left = 416 |
332 |
top = 352 |
333 |
object UserListSECPLUGIN: TIBStringField |
334 |
FieldKind = fkData |
335 |
FieldName = 'SEC$PLUGIN' |
336 |
Index = 0 |
337 |
LookupCache = False |
338 |
ProviderFlags = [pfInUpdate, pfInWhere] |
339 |
ReadOnly = True |
340 |
Required = False |
341 |
Size = 31 |
342 |
end |
343 |
object UserListSECADMIN: TBooleanField |
344 |
FieldKind = fkData |
345 |
FieldName = 'SEC$ADMIN' |
346 |
Index = 1 |
347 |
LookupCache = False |
348 |
ProviderFlags = [pfInUpdate, pfInWhere] |
349 |
ReadOnly = False |
350 |
Required = False |
351 |
DisplayValues = 'True;False' |
352 |
end |
353 |
object UserListSECACTIVE: TBooleanField |
354 |
FieldKind = fkData |
355 |
FieldName = 'SEC$ACTIVE' |
356 |
Index = 2 |
357 |
LookupCache = False |
358 |
ProviderFlags = [pfInUpdate, pfInWhere] |
359 |
ReadOnly = False |
360 |
Required = False |
361 |
DisplayValues = 'True;False' |
362 |
end |
363 |
object UserListSECMIDDLE_NAME: TIBStringField |
364 |
FieldKind = fkData |
365 |
FieldName = 'SEC$MIDDLE_NAME' |
366 |
Index = 3 |
367 |
LookupCache = False |
368 |
ProviderFlags = [pfInUpdate, pfInWhere] |
369 |
ReadOnly = False |
370 |
Required = False |
371 |
Size = 32 |
372 |
end |
373 |
object UserListSECFIRST_NAME: TIBStringField |
374 |
FieldKind = fkData |
375 |
FieldName = 'SEC$FIRST_NAME' |
376 |
Index = 4 |
377 |
LookupCache = False |
378 |
ProviderFlags = [pfInUpdate, pfInWhere] |
379 |
ReadOnly = False |
380 |
Required = False |
381 |
Size = 32 |
382 |
end |
383 |
object UserListSECLAST_NAME: TIBStringField |
384 |
FieldKind = fkData |
385 |
FieldName = 'SEC$LAST_NAME' |
386 |
Index = 5 |
387 |
LookupCache = False |
388 |
ProviderFlags = [pfInUpdate, pfInWhere] |
389 |
ReadOnly = False |
390 |
Required = False |
391 |
Size = 32 |
392 |
end |
393 |
object UserListLOGGEDIN: TBooleanField |
394 |
FieldKind = fkData |
395 |
FieldName = 'LOGGEDIN' |
396 |
Index = 6 |
397 |
LookupCache = False |
398 |
ProviderFlags = [pfInUpdate, pfInWhere] |
399 |
ReadOnly = False |
400 |
Required = True |
401 |
DisplayValues = 'True;False' |
402 |
end |
403 |
object UserListCURRENT_CONNECTION: TIBLargeIntField |
404 |
FieldKind = fkData |
405 |
FieldName = 'CURRENT_CONNECTION' |
406 |
Index = 7 |
407 |
LookupCache = False |
408 |
ProviderFlags = [pfInUpdate, pfInWhere] |
409 |
ReadOnly = False |
410 |
Required = True |
411 |
end |
412 |
object UserListDBCREATOR: TBooleanField |
413 |
FieldKind = fkData |
414 |
FieldName = 'DBCREATOR' |
415 |
Index = 8 |
416 |
LookupCache = False |
417 |
ProviderFlags = [pfInUpdate, pfInWhere] |
418 |
ReadOnly = False |
419 |
Required = True |
420 |
DisplayValues = 'True;False' |
421 |
end |
422 |
object UserListUSERID: TLongintField |
423 |
FieldKind = fkCalculated |
424 |
FieldName = 'USERID' |
425 |
Index = 9 |
426 |
LookupCache = False |
427 |
ProviderFlags = [pfInUpdate, pfInWhere] |
428 |
ReadOnly = False |
429 |
Required = False |
430 |
end |
431 |
object UserListGROUPID: TLongintField |
432 |
FieldKind = fkCalculated |
433 |
FieldName = 'GROUPID' |
434 |
Index = 10 |
435 |
LookupCache = False |
436 |
ProviderFlags = [pfInUpdate, pfInWhere] |
437 |
ReadOnly = False |
438 |
Required = False |
439 |
end |
440 |
object UserListSECPASSWORD: TIBStringField |
441 |
FieldKind = fkData |
442 |
FieldName = 'SEC$PASSWORD' |
443 |
Index = 11 |
444 |
LookupCache = False |
445 |
ProviderFlags = [pfInUpdate, pfInWhere] |
446 |
ReadOnly = False |
447 |
Required = False |
448 |
Size = 32 |
449 |
end |
450 |
object UserListSECUSER_NAME: TIBStringField |
451 |
FieldKind = fkData |
452 |
FieldName = 'SEC$USER_NAME' |
453 |
Index = 12 |
454 |
LookupCache = False |
455 |
ProviderFlags = [pfInUpdate, pfInWhere] |
456 |
ReadOnly = False |
457 |
Required = False |
458 |
Size = 31 |
459 |
end |
460 |
end |
461 |
object UpdateUsers: TIBUpdate |
462 |
RefreshSQL.Strings = ( |
463 |
'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,' |
464 |
'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,' |
465 |
'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,' |
466 |
'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,' |
467 |
'case when B.MON$ATTACHMENT_ID is not null then true else false end as LoggedIn,' |
468 |
'case When C.SEC$USER is not null then true else false end as DBCreator' |
469 |
'From SEC$USERS A' |
470 |
'Left Outer Join MON$ATTACHMENTS B' |
471 |
'On A.SEC$USER_NAME = B.MON$USER' |
472 |
'Left Outer Join SEC$DB_CREATORS C on C.SEC$USER = A.SEC$USER_NAME' |
473 |
'Where A.SEC$USER_NAME = :SEC$USER_NAME' |
474 |
) |
475 |
OnApplyUpdates = UpdateUsersApplyUpdates |
476 |
left = 544 |
477 |
top = 360 |
478 |
end |
479 |
object RoleNameList: TIBQuery |
480 |
AllowAutoActivateTransaction = False |
481 |
Database = IBDatabase1 |
482 |
Transaction = CurrentTransaction |
483 |
AutoCommit = acCommitRetaining |
484 |
BufferChunks = 1000 |
485 |
CachedUpdates = False |
486 |
DataSource = UserListSource |
487 |
EnableStatistics = False |
488 |
GenerateParamNames = False |
489 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
490 |
MasterDetailDelay = 0 |
491 |
SQL.Strings = ( |
492 |
'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG, ' |
493 |
'P.RDB$USER,RDB$PRIVILEGE, cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,' |
494 |
'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED' |
495 |
'FROM RDB$ROLES r' |
496 |
'Left Outer JOIN (' |
497 |
'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER From RDB$USER_PRIVILEGES ' |
498 |
'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M''' |
499 |
') P On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME ' |
500 |
'' |
501 |
) |
502 |
Params = < |
503 |
item |
504 |
DataType = ftUnknown |
505 |
Name = 'SEC$USER_NAME' |
506 |
ParamType = ptInput |
507 |
end> |
508 |
UpdateObject = UpdateUserRoles |
509 |
DataSetCloseAction = dcSaveChanges |
510 |
left = 424 |
511 |
top = 280 |
512 |
ParamData = < |
513 |
item |
514 |
DataType = ftUnknown |
515 |
Name = 'SEC$USER_NAME' |
516 |
ParamType = ptInput |
517 |
end> |
518 |
end |
519 |
object UpdateUserRoles: TIBUpdate |
520 |
RefreshSQL.Strings = ( |
521 |
'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG,' |
522 |
'P.RDB$USER,RDB$PRIVILEGE, cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,' |
523 |
'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED' |
524 |
'FROM RDB$ROLES r' |
525 |
'Left Outer JOIN (' |
526 |
'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER From RDB$USER_PRIVILEGES' |
527 |
'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M''' |
528 |
') P On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME' |
529 |
'Where r.RDB$ROLE_NAME = :RDB$ROLE_NAME' |
530 |
) |
531 |
OnApplyUpdates = UpdateUserRolesApplyUpdates |
532 |
left = 544 |
533 |
top = 288 |
534 |
end |
535 |
object ApplicationProperties1: TApplicationProperties |
536 |
OnException = ApplicationProperties1Exception |
537 |
left = 528 |
538 |
top = 32 |
539 |
end |
540 |
object UserTags: TIBQuery |
541 |
AllowAutoActivateTransaction = False |
542 |
Database = IBDatabase1 |
543 |
Transaction = CurrentTransaction |
544 |
AfterInsert = UserTagsAfterInsert |
545 |
BufferChunks = 1000 |
546 |
CachedUpdates = False |
547 |
DataSource = UserListSource |
548 |
EnableStatistics = False |
549 |
GenerateParamNames = False |
550 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
551 |
MasterDetailDelay = 0 |
552 |
SQL.Strings = ( |
553 |
'Select a.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE' |
554 |
'From' |
555 |
'SEC$USER_ATTRIBUTES A' |
556 |
'Where SEC$USER_NAME = :SEC$USER_NAME' |
557 |
) |
558 |
Params = < |
559 |
item |
560 |
DataType = ftUnknown |
561 |
Name = 'SEC$USER_NAME' |
562 |
ParamType = ptInput |
563 |
end> |
564 |
UpdateObject = TagsUpdate |
565 |
DataSetCloseAction = dcSaveChanges |
566 |
left = 424 |
567 |
top = 192 |
568 |
ParamData = < |
569 |
item |
570 |
DataType = ftUnknown |
571 |
Name = 'SEC$USER_NAME' |
572 |
ParamType = ptInput |
573 |
end> |
574 |
end |
575 |
object TagsUpdate: TIBUpdate |
576 |
RefreshSQL.Strings = ( |
577 |
'Select A.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE From ' |
578 |
'SEC$USER_ATTRIBUTES A' |
579 |
'Where SEC$USER_NAME = :SEC$USER_NAME' |
580 |
' and A.SEC$KEY = :SEC$KEY' |
581 |
) |
582 |
OnApplyUpdates = TagsUpdateApplyUpdates |
583 |
left = 536 |
584 |
top = 200 |
585 |
end |
586 |
object UserListSource: TDataSource |
587 |
DataSet = UserList |
588 |
left = 304 |
589 |
top = 360 |
590 |
end |
591 |
object Attachments: TIBQuery |
592 |
AllowAutoActivateTransaction = False |
593 |
Database = IBDatabase1 |
594 |
Transaction = CurrentTransaction |
595 |
AfterDelete = AttachmentsAfterDelete |
596 |
AfterOpen = AttachmentsAfterOpen |
597 |
BeforeOpen = AttachmentsBeforeOpen |
598 |
BufferChunks = 1000 |
599 |
CachedUpdates = False |
600 |
EnableStatistics = False |
601 |
GenerateParamNames = False |
602 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
603 |
MasterDetailDelay = 0 |
604 |
SQL.Strings = ( |
605 |
'SELECT *' |
606 |
'FROM MON$ATTACHMENTS r' |
607 |
'JOIN RDB$CHARACTER_SETS S On S.RDB$CHARACTER_SET_ID = r.MON$CHARACTER_SET_ID' |
608 |
'' |
609 |
) |
610 |
Params = <> |
611 |
UpdateObject = AttUpdate |
612 |
DataSetCloseAction = dcDiscardChanges |
613 |
left = 280 |
614 |
top = 433 |
615 |
object AttachmentsMONATTACHMENT_ID: TIBLargeIntField |
616 |
FieldKind = fkData |
617 |
FieldName = 'MON$ATTACHMENT_ID' |
618 |
Index = 0 |
619 |
LookupCache = False |
620 |
ProviderFlags = [pfInUpdate, pfInWhere] |
621 |
ReadOnly = False |
622 |
Required = False |
623 |
end |
624 |
object AttachmentsMONSERVER_PID: TIBIntegerField |
625 |
FieldKind = fkData |
626 |
FieldName = 'MON$SERVER_PID' |
627 |
Index = 1 |
628 |
LookupCache = False |
629 |
ProviderFlags = [pfInUpdate, pfInWhere] |
630 |
ReadOnly = False |
631 |
Required = False |
632 |
end |
633 |
object AttachmentsMONSTATE: TIBSmallintField |
634 |
FieldKind = fkData |
635 |
FieldName = 'MON$STATE' |
636 |
Index = 2 |
637 |
LookupCache = False |
638 |
ProviderFlags = [pfInUpdate, pfInWhere] |
639 |
ReadOnly = False |
640 |
Required = False |
641 |
end |
642 |
object AttachmentsMONATTACHMENT_NAME: TIBStringField |
643 |
FieldKind = fkData |
644 |
FieldName = 'MON$ATTACHMENT_NAME' |
645 |
Index = 3 |
646 |
LookupCache = False |
647 |
ProviderFlags = [pfInUpdate, pfInWhere] |
648 |
ReadOnly = False |
649 |
Required = False |
650 |
Size = 255 |
651 |
end |
652 |
object AttachmentsMONUSER: TIBStringField |
653 |
FieldKind = fkData |
654 |
FieldName = 'MON$USER' |
655 |
Index = 4 |
656 |
LookupCache = False |
657 |
ProviderFlags = [pfInUpdate, pfInWhere] |
658 |
ReadOnly = False |
659 |
Required = False |
660 |
Size = 31 |
661 |
end |
662 |
object AttachmentsMONROLE: TIBStringField |
663 |
FieldKind = fkData |
664 |
FieldName = 'MON$ROLE' |
665 |
Index = 5 |
666 |
LookupCache = False |
667 |
ProviderFlags = [pfInUpdate, pfInWhere] |
668 |
ReadOnly = False |
669 |
Required = False |
670 |
Size = 31 |
671 |
end |
672 |
object AttachmentsMONREMOTE_PROTOCOL: TIBStringField |
673 |
FieldKind = fkData |
674 |
FieldName = 'MON$REMOTE_PROTOCOL' |
675 |
Index = 6 |
676 |
LookupCache = False |
677 |
ProviderFlags = [pfInUpdate, pfInWhere] |
678 |
ReadOnly = False |
679 |
Required = False |
680 |
Size = 10 |
681 |
end |
682 |
object AttachmentsMONREMOTE_ADDRESS: TIBStringField |
683 |
FieldKind = fkData |
684 |
FieldName = 'MON$REMOTE_ADDRESS' |
685 |
Index = 7 |
686 |
LookupCache = False |
687 |
ProviderFlags = [pfInUpdate, pfInWhere] |
688 |
ReadOnly = False |
689 |
Required = False |
690 |
Size = 255 |
691 |
end |
692 |
object AttachmentsMONREMOTE_PID: TIBIntegerField |
693 |
FieldKind = fkData |
694 |
FieldName = 'MON$REMOTE_PID' |
695 |
Index = 8 |
696 |
LookupCache = False |
697 |
ProviderFlags = [pfInUpdate, pfInWhere] |
698 |
ReadOnly = False |
699 |
Required = False |
700 |
end |
701 |
object AttachmentsMONCHARACTER_SET_ID: TIBSmallintField |
702 |
FieldKind = fkData |
703 |
FieldName = 'MON$CHARACTER_SET_ID' |
704 |
Index = 9 |
705 |
LookupCache = False |
706 |
ProviderFlags = [pfInUpdate, pfInWhere] |
707 |
ReadOnly = False |
708 |
Required = False |
709 |
end |
710 |
object AttachmentsMONTIMESTAMP: TDateTimeField |
711 |
FieldKind = fkData |
712 |
FieldName = 'MON$TIMESTAMP' |
713 |
Index = 10 |
714 |
LookupCache = False |
715 |
ProviderFlags = [pfInUpdate, pfInWhere] |
716 |
ReadOnly = False |
717 |
Required = False |
718 |
end |
719 |
object AttachmentsMONGARBAGE_COLLECTION: TIBSmallintField |
720 |
FieldKind = fkData |
721 |
FieldName = 'MON$GARBAGE_COLLECTION' |
722 |
Index = 11 |
723 |
LookupCache = False |
724 |
ProviderFlags = [pfInUpdate, pfInWhere] |
725 |
ReadOnly = False |
726 |
Required = False |
727 |
end |
728 |
object AttachmentsMONREMOTE_PROCESS: TIBStringField |
729 |
FieldKind = fkData |
730 |
FieldName = 'MON$REMOTE_PROCESS' |
731 |
Index = 12 |
732 |
LookupCache = False |
733 |
ProviderFlags = [pfInUpdate, pfInWhere] |
734 |
ReadOnly = False |
735 |
Required = False |
736 |
Size = 255 |
737 |
end |
738 |
object AttachmentsMONSTAT_ID: TIBIntegerField |
739 |
FieldKind = fkData |
740 |
FieldName = 'MON$STAT_ID' |
741 |
Index = 13 |
742 |
LookupCache = False |
743 |
ProviderFlags = [pfInUpdate, pfInWhere] |
744 |
ReadOnly = False |
745 |
Required = False |
746 |
end |
747 |
object AttachmentsMONCLIENT_VERSION: TIBStringField |
748 |
FieldKind = fkData |
749 |
FieldName = 'MON$CLIENT_VERSION' |
750 |
Index = 14 |
751 |
LookupCache = False |
752 |
ProviderFlags = [pfInUpdate, pfInWhere] |
753 |
ReadOnly = False |
754 |
Required = False |
755 |
Size = 255 |
756 |
end |
757 |
object AttachmentsMONREMOTE_VERSION: TIBStringField |
758 |
FieldKind = fkData |
759 |
FieldName = 'MON$REMOTE_VERSION' |
760 |
Index = 15 |
761 |
LookupCache = False |
762 |
ProviderFlags = [pfInUpdate, pfInWhere] |
763 |
ReadOnly = False |
764 |
Required = False |
765 |
Size = 255 |
766 |
end |
767 |
object AttachmentsMONREMOTE_HOST: TIBStringField |
768 |
FieldKind = fkData |
769 |
FieldName = 'MON$REMOTE_HOST' |
770 |
Index = 16 |
771 |
LookupCache = False |
772 |
ProviderFlags = [pfInUpdate, pfInWhere] |
773 |
ReadOnly = False |
774 |
Required = False |
775 |
Size = 255 |
776 |
end |
777 |
object AttachmentsMONREMOTE_OS_USER: TIBStringField |
778 |
FieldKind = fkData |
779 |
FieldName = 'MON$REMOTE_OS_USER' |
780 |
Index = 17 |
781 |
LookupCache = False |
782 |
ProviderFlags = [pfInUpdate, pfInWhere] |
783 |
ReadOnly = False |
784 |
Required = False |
785 |
Size = 255 |
786 |
end |
787 |
object AttachmentsMONAUTH_METHOD: TIBStringField |
788 |
FieldKind = fkData |
789 |
FieldName = 'MON$AUTH_METHOD' |
790 |
Index = 18 |
791 |
LookupCache = False |
792 |
ProviderFlags = [pfInUpdate, pfInWhere] |
793 |
ReadOnly = False |
794 |
Required = False |
795 |
Size = 255 |
796 |
end |
797 |
object AttachmentsMONSYSTEM_FLAG: TIBSmallintField |
798 |
FieldKind = fkData |
799 |
FieldName = 'MON$SYSTEM_FLAG' |
800 |
Index = 19 |
801 |
LookupCache = False |
802 |
ProviderFlags = [pfInUpdate, pfInWhere] |
803 |
ReadOnly = False |
804 |
Required = True |
805 |
end |
806 |
object AttachmentsRDBCHARACTER_SET_NAME: TIBStringField |
807 |
FieldKind = fkData |
808 |
FieldName = 'RDB$CHARACTER_SET_NAME' |
809 |
Index = 20 |
810 |
LookupCache = False |
811 |
ProviderFlags = [pfInUpdate, pfInWhere] |
812 |
ReadOnly = False |
813 |
Required = False |
814 |
Size = 31 |
815 |
end |
816 |
object AttachmentsRDBFORM_OF_USE: TIBStringField |
817 |
FieldKind = fkData |
818 |
FieldName = 'RDB$FORM_OF_USE' |
819 |
Index = 21 |
820 |
LookupCache = False |
821 |
ProviderFlags = [pfInUpdate, pfInWhere] |
822 |
ReadOnly = False |
823 |
Required = False |
824 |
Size = 31 |
825 |
end |
826 |
object AttachmentsRDBNUMBER_OF_CHARACTERS: TIBIntegerField |
827 |
FieldKind = fkData |
828 |
FieldName = 'RDB$NUMBER_OF_CHARACTERS' |
829 |
Index = 22 |
830 |
LookupCache = False |
831 |
ProviderFlags = [pfInUpdate, pfInWhere] |
832 |
ReadOnly = False |
833 |
Required = False |
834 |
end |
835 |
object AttachmentsRDBDEFAULT_COLLATE_NAME: TIBStringField |
836 |
FieldKind = fkData |
837 |
FieldName = 'RDB$DEFAULT_COLLATE_NAME' |
838 |
Index = 23 |
839 |
LookupCache = False |
840 |
ProviderFlags = [pfInUpdate, pfInWhere] |
841 |
ReadOnly = False |
842 |
Required = False |
843 |
Size = 31 |
844 |
end |
845 |
object AttachmentsRDBCHARACTER_SET_ID: TIBSmallintField |
846 |
FieldKind = fkData |
847 |
FieldName = 'RDB$CHARACTER_SET_ID' |
848 |
Index = 24 |
849 |
LookupCache = False |
850 |
ProviderFlags = [pfInUpdate, pfInWhere] |
851 |
ReadOnly = False |
852 |
Required = False |
853 |
end |
854 |
object AttachmentsRDBSYSTEM_FLAG: TIBSmallintField |
855 |
FieldKind = fkData |
856 |
FieldName = 'RDB$SYSTEM_FLAG' |
857 |
Index = 25 |
858 |
LookupCache = False |
859 |
ProviderFlags = [pfInUpdate, pfInWhere] |
860 |
ReadOnly = False |
861 |
Required = True |
862 |
end |
863 |
object AttachmentsRDBDESCRIPTION: TIBMemoField |
864 |
FieldKind = fkData |
865 |
FieldName = 'RDB$DESCRIPTION' |
866 |
Index = 26 |
867 |
LookupCache = False |
868 |
ProviderFlags = [pfInUpdate, pfInWhere] |
869 |
ReadOnly = False |
870 |
Required = False |
871 |
BlobType = ftMemo |
872 |
Size = 8 |
873 |
Transliterate = False |
874 |
DisplayTextAsClassName = False |
875 |
end |
876 |
object AttachmentsRDBFUNCTION_NAME: TIBStringField |
877 |
FieldKind = fkData |
878 |
FieldName = 'RDB$FUNCTION_NAME' |
879 |
Index = 27 |
880 |
LookupCache = False |
881 |
ProviderFlags = [pfInUpdate, pfInWhere] |
882 |
ReadOnly = False |
883 |
Required = False |
884 |
Size = 31 |
885 |
end |
886 |
object AttachmentsRDBBYTES_PER_CHARACTER: TIBSmallintField |
887 |
FieldKind = fkData |
888 |
FieldName = 'RDB$BYTES_PER_CHARACTER' |
889 |
Index = 28 |
890 |
LookupCache = False |
891 |
ProviderFlags = [pfInUpdate, pfInWhere] |
892 |
ReadOnly = False |
893 |
Required = False |
894 |
end |
895 |
object AttachmentsRDBSECURITY_CLASS: TIBStringField |
896 |
FieldKind = fkData |
897 |
FieldName = 'RDB$SECURITY_CLASS' |
898 |
Index = 29 |
899 |
LookupCache = False |
900 |
ProviderFlags = [pfInUpdate, pfInWhere] |
901 |
ReadOnly = False |
902 |
Required = False |
903 |
Size = 31 |
904 |
end |
905 |
object AttachmentsRDBOWNER_NAME: TIBStringField |
906 |
FieldKind = fkData |
907 |
FieldName = 'RDB$OWNER_NAME' |
908 |
Index = 30 |
909 |
LookupCache = False |
910 |
ProviderFlags = [pfInUpdate, pfInWhere] |
911 |
ReadOnly = False |
912 |
Required = False |
913 |
Size = 31 |
914 |
end |
915 |
end |
916 |
object AttUpdate: TIBUpdate |
917 |
OnApplyUpdates = AttUpdateApplyUpdates |
918 |
left = 376 |
919 |
top = 432 |
920 |
end |
921 |
object AdminUserQuery: TIBSQL |
922 |
Database = IBDatabase1 |
923 |
GenerateParamNames = False |
924 |
UniqueParamNames = False |
925 |
ParamCheck = True |
926 |
SQL.Strings = ( |
927 |
'Select A.SEC$ADMIN From SEC$USERS A' |
928 |
'Where SEC$USER_NAME = CURRENT_USER' |
929 |
) |
930 |
Transaction = CurrentTransaction |
931 |
left = 424 |
932 |
top = 496 |
933 |
end |
934 |
object DBTables: TIBQuery |
935 |
AllowAutoActivateTransaction = False |
936 |
Database = IBDatabase1 |
937 |
Transaction = CurrentTransaction |
938 |
BufferChunks = 1000 |
939 |
CachedUpdates = False |
940 |
EnableStatistics = False |
941 |
GenerateParamNames = False |
942 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
943 |
MasterDetailDelay = 0 |
944 |
SQL.Strings = ( |
945 |
'Select Trim(A.RDB$RELATION_NAME) as RDB$RELATION_NAME, 1 as Selected' |
946 |
' From RDB$RELATIONS A' |
947 |
' Where RDB$SYSTEM_FLAG = 0' |
948 |
' order by 1' |
949 |
) |
950 |
Params = <> |
951 |
UpdateObject = DBTablesUpdate |
952 |
DataSetCloseAction = dcDiscardChanges |
953 |
left = 520 |
954 |
top = 488 |
955 |
end |
956 |
object DBTablesUpdate: TIBUpdate |
957 |
RefreshSQL.Strings = ( |
958 |
'' |
959 |
) |
960 |
OnApplyUpdates = DBTablesUpdateApplyUpdates |
961 |
left = 592 |
962 |
top = 480 |
963 |
end |
964 |
object AuthMappings: TIBQuery |
965 |
AllowAutoActivateTransaction = False |
966 |
Database = IBDatabase1 |
967 |
Transaction = CurrentTransaction |
968 |
BufferChunks = 1000 |
969 |
CachedUpdates = False |
970 |
EnableStatistics = False |
971 |
GenerateParamNames = False |
972 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
973 |
MasterDetailDelay = 0 |
974 |
SQL.Strings = ( |
975 |
'SELECT r.RDB$DB_KEY, cast(''Local'' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,' |
976 |
' Case' |
977 |
' When r.RDB$MAP_USING = ''P'' and r.RDB$MAP_PLUGIN is not null then cast (''Plugin '' || r.RDB$MAP_PLUGIN as VarChar(20))' |
978 |
' When r.RDB$MAP_USING = ''P'' and r.RDB$MAP_PLUGIN is null then ''Any Plugin''' |
979 |
' When r.RDB$MAP_USING = ''S'' then ''Any Plugin Serverwide''' |
980 |
' When r.RDB$MAP_USING = ''M'' then ''Mapping''' |
981 |
' When r.RDB$MAP_USING = ''*'' then ''*''' |
982 |
' else' |
983 |
' ''Using '' || r.RDB$MAP_USING || '','' || coalesce(r.RDB$MAP_PLUGIN,'''') End as MAP_USING,' |
984 |
' r.RDB$MAP_USING, r.RDB$MAP_PLUGIN,' |
985 |
' r.RDB$MAP_DB, r.RDB$MAP_FROM_TYPE, r.RDB$MAP_FROM,' |
986 |
' Trim(r.RDB$MAP_FROM_TYPE) || '': '' || Trim(r.RDB$MAP_FROM) as MAP_FROM,' |
987 |
' r.RDB$MAP_TO_TYPE,' |
988 |
' T.RDB$TYPE_NAME as MAP_TO_TYPE, r.RDB$MAP_TO,' |
989 |
' Trim(T.RDB$TYPE_NAME) || '': '' || Trim(r.RDB$MAP_TO) as MAP_TO,' |
990 |
' r.RDB$SYSTEM_FLAG, r.RDB$DESCRIPTION' |
991 |
'FROM RDB$AUTH_MAPPING r' |
992 |
'JOIN RDB$TYPES T On T.RDB$TYPE = r.RDB$MAP_TO_TYPE and T.RDB$FIELD_NAME = ''RDB$MAP_TO_TYPE''' |
993 |
'UNION' |
994 |
'SELECT r.RDB$DB_KEY, ''Global'', r.SEC$MAP_NAME,' |
995 |
' Case' |
996 |
' When r.SEC$MAP_USING = ''P'' and r.SEC$MAP_PLUGIN is not null then cast (''Plugin '' || r.SEC$MAP_PLUGIN as VarChar(20))' |
997 |
' When r.SEC$MAP_USING = ''P'' and r.SEC$MAP_PLUGIN is null then ''Any Plugin''' |
998 |
' When r.SEC$MAP_USING = ''S'' then ''Any Plugin Serverwide''' |
999 |
' When r.SEC$MAP_USING = ''M'' then ''Mapping''' |
1000 |
' When r.SEC$MAP_USING = ''*'' then ''*''' |
1001 |
' else' |
1002 |
' ''Using '' || r.SEC$MAP_USING || '','' || coalesce(r.SEC$MAP_PLUGIN,'''') End as MAP_USING,' |
1003 |
' r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,' |
1004 |
' r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,' |
1005 |
' Trim(r.SEC$MAP_FROM_TYPE) || '': '' || Trim(r.SEC$MAP_FROM) as MAP_FROM,' |
1006 |
' r.SEC$MAP_TO_TYPE,' |
1007 |
' T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,' |
1008 |
' Trim(T.RDB$TYPE_NAME) || '': '' || Trim(r.SEC$MAP_TO) as MAP_TO,' |
1009 |
' null,null' |
1010 |
'FROM SEC$GLOBAL_AUTH_MAPPING r' |
1011 |
'JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = ''RDB$MAP_TO_TYPE''' |
1012 |
'' |
1013 |
) |
1014 |
Params = <> |
1015 |
DataSetCloseAction = dcDiscardChanges |
1016 |
left = 657 |
1017 |
top = 118 |
1018 |
end |
1019 |
object AccessRights: TIBQuery |
1020 |
AllowAutoActivateTransaction = False |
1021 |
Database = IBDatabase1 |
1022 |
Transaction = CurrentTransaction |
1023 |
OnCalcFields = AccessRightsCalcFields |
1024 |
BufferChunks = 1000 |
1025 |
CachedUpdates = False |
1026 |
EnableStatistics = False |
1027 |
GenerateParamNames = False |
1028 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
1029 |
MasterDetailDelay = 0 |
1030 |
SQL.Strings = ( |
1031 |
'with recursive AccessRight as (' |
1032 |
'Select UP.RDB$USER as SUBJECT_NAME,' |
1033 |
' UP.RDB$USER_TYPE as SUBJECT_TYPE,' |
1034 |
' UP.RDB$OBJECT_TYPE as OBJECT_TYPE,' |
1035 |
' UP.RDB$RELATION_NAME as OBJECT_NAME,' |
1036 |
' T2.RDB$TYPE_NAME as OBJECT_TYPE_NAME,' |
1037 |
' UP.RDB$GRANTOR as GRANTOR,' |
1038 |
' UP.RDB$GRANT_OPTION as GRANT_OPTION,' |
1039 |
' List(Trim(UP.RDB$PRIVILEGE)) as Granted_Privileges,' |
1040 |
' count (C.RDB$DB_KEY) as ChildCount' |
1041 |
' From RDB$USER_PRIVILEGES UP' |
1042 |
' JOIN RDB$TYPES T2 On T2.RDB$TYPE = UP.RDB$OBJECT_TYPE and T2.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE''' |
1043 |
' Left Outer JOIN RDB$USER_PRIVILEGES C On C.RDB$USER_TYPE = UP.RDB$OBJECT_TYPE and C.RDB$USER = UP.RDB$RELATION_NAME' |
1044 |
' Where UP.RDB$USER <> ''SYSDBA''' |
1045 |
' Group BY UP.RDB$USER,UP.RDB$USER_TYPE,UP.RDB$OBJECT_TYPE,' |
1046 |
' UP.RDB$RELATION_NAME, UP.RDB$GRANTOR, UP.RDB$GRANT_OPTION,' |
1047 |
' T2.RDB$TYPE_NAME' |
1048 |
' ),' |
1049 |
'' |
1050 |
' AccessRights as (' |
1051 |
' select cast(Trim(SUBJECT_NAME) || SUBJECT_TYPE as Char(33)) as ID,SUBJECT_TYPE, SUBJECT_NAME,' |
1052 |
' OBJECT_TYPE, OBJECT_NAME, OBJECT_TYPE_NAME, Granted_Privileges,GRANTOR, GRANT_OPTION,' |
1053 |
' cast(NULL as Char(33) ) as Parent, ChildCount' |
1054 |
' From AccessRight' |
1055 |
' UNION all' |
1056 |
' Select Trim(B.SUBJECT_NAME) || B.SUBJECT_TYPE as ID, B.SUBJECT_TYPE, B.SUBJECT_NAME,' |
1057 |
' B.OBJECT_TYPE, B.OBJECT_NAME, B.OBJECT_TYPE_NAME, B.Granted_Privileges, B.GRANTOR, B.GRANT_OPTION,' |
1058 |
' A.ID as Parent,B.ChildCount' |
1059 |
' From AccessRight B' |
1060 |
' JOIN AccessRights A On A.OBJECT_TYPE = B.SUBJECT_TYPE and A.OBJECT_NAME = B.SUBJECT_NAME' |
1061 |
' )' |
1062 |
'' |
1063 |
'Select *' |
1064 |
'From (' |
1065 |
'Select A.ID as ID, Trim(A.SUBJECT_NAME )as SUBJECT_NAME, A.SUBJECT_TYPE as SUBJECT_TYPE,' |
1066 |
' case When A.Parent is NULL then Trim(T.RDB$TYPE_NAME) || A.SUBJECT_TYPE Else A.Parent End as Parent,' |
1067 |
' sum(A.ChildCount) as ChildCount' |
1068 |
' from AccessRights A' |
1069 |
' JOIN RDB$TYPES T On T.RDB$TYPE = A.SUBJECT_TYPE and RDB$FIELD_NAME = ''RDB$OBJECT_TYPE''' |
1070 |
' Group By A.ID, A.SUBJECT_NAME, A.SUBJECT_TYPE, A.Parent, T.RDB$TYPE_NAME' |
1071 |
'UNION' |
1072 |
'SELECT Trim(r.RDB$TYPE_NAME) || r.RDB$TYPE as ID, Trim(r.RDB$TYPE_NAME) || ''S'' as SUBJECT_NAME,-r.RDB$TYPE,' |
1073 |
' NULL,1' |
1074 |
'FROM RDB$TYPES r Where RDB$FIELD_NAME = ''RDB$OBJECT_TYPE''' |
1075 |
'and Exists(Select * from RDB$USER_PRIVILEGES Where RDB$USER_TYPE = r.RDB$TYPE)' |
1076 |
'' |
1077 |
' )' |
1078 |
'' |
1079 |
) |
1080 |
Params = <> |
1081 |
DataSetCloseAction = dcDiscardChanges |
1082 |
left = 648 |
1083 |
top = 264 |
1084 |
object AccessRightsID: TIBStringField |
1085 |
FieldKind = fkData |
1086 |
FieldName = 'ID' |
1087 |
Index = 0 |
1088 |
LookupCache = False |
1089 |
ProviderFlags = [pfInUpdate, pfInWhere] |
1090 |
ReadOnly = False |
1091 |
Required = False |
1092 |
Size = 37 |
1093 |
end |
1094 |
object AccessRightsSUBJECT_NAME: TIBStringField |
1095 |
FieldKind = fkData |
1096 |
FieldName = 'SUBJECT_NAME' |
1097 |
Index = 1 |
1098 |
LookupCache = False |
1099 |
ProviderFlags = [pfInUpdate, pfInWhere] |
1100 |
ReadOnly = False |
1101 |
Required = False |
1102 |
Size = 32 |
1103 |
end |
1104 |
object AccessRightsSUBJECT_TYPE: TIBSmallintField |
1105 |
FieldKind = fkData |
1106 |
FieldName = 'SUBJECT_TYPE' |
1107 |
Index = 2 |
1108 |
LookupCache = False |
1109 |
ProviderFlags = [pfInUpdate, pfInWhere] |
1110 |
ReadOnly = False |
1111 |
Required = False |
1112 |
end |
1113 |
object AccessRightsPARENT: TIBStringField |
1114 |
FieldKind = fkData |
1115 |
FieldName = 'PARENT' |
1116 |
Index = 3 |
1117 |
LookupCache = False |
1118 |
ProviderFlags = [pfInUpdate, pfInWhere] |
1119 |
ReadOnly = False |
1120 |
Required = False |
1121 |
Size = 37 |
1122 |
end |
1123 |
object AccessRightsCHILDCOUNT: TIBLargeIntField |
1124 |
FieldKind = fkData |
1125 |
FieldName = 'CHILDCOUNT' |
1126 |
Index = 4 |
1127 |
LookupCache = False |
1128 |
ProviderFlags = [pfInUpdate, pfInWhere] |
1129 |
ReadOnly = False |
1130 |
Required = False |
1131 |
end |
1132 |
object AccessRightsImageIndex: TLongintField |
1133 |
FieldKind = fkCalculated |
1134 |
FieldName = 'ImageIndex' |
1135 |
Index = 5 |
1136 |
LookupCache = False |
1137 |
ProviderFlags = [pfInUpdate, pfInWhere] |
1138 |
ReadOnly = False |
1139 |
Required = False |
1140 |
end |
1141 |
object AccessRightsDisplayName: TStringField |
1142 |
FieldKind = fkCalculated |
1143 |
FieldName = 'DisplayName' |
1144 |
Index = 6 |
1145 |
LookupCache = False |
1146 |
ProviderFlags = [pfInUpdate, pfInWhere] |
1147 |
ReadOnly = False |
1148 |
Required = False |
1149 |
Size = 64 |
1150 |
end |
1151 |
end |
1152 |
object SubjectAccessRights: TIBQuery |
1153 |
AllowAutoActivateTransaction = False |
1154 |
Database = IBDatabase1 |
1155 |
Transaction = CurrentTransaction |
1156 |
BeforeOpen = SubjectAccessRightsBeforeOpen |
1157 |
BufferChunks = 1000 |
1158 |
CachedUpdates = False |
1159 |
EnableStatistics = False |
1160 |
GenerateParamNames = False |
1161 |
GeneratorField.ApplyOnEvent = gaeOnNewRecord |
1162 |
MasterDetailDelay = 0 |
1163 |
SQL.Strings = ( |
1164 |
'Select UP.RDB$USER as SUBJECT_NAME,' |
1165 |
' UP.RDB$USER_TYPE as SUBJECT_TYPE,' |
1166 |
' T1.RDB$TYPE_NAME as SUBJECT_TYPE_NAME,' |
1167 |
' UP.RDB$OBJECT_TYPE as OBJECT_TYPE,' |
1168 |
' case T2.RDB$TYPE_NAME' |
1169 |
' When ''RELATION'' then ''TABLE''' |
1170 |
' When ''FIELD'' then ''DOMAIN''' |
1171 |
' Else T2.RDB$TYPE_NAME End as OBJECT_TYPE_NAME,' |
1172 |
' UP.RDB$RELATION_NAME as OBJECT_NAME,' |
1173 |
' List(DISTINCT Trim(RDB$PRIVILEGE)) as Granted_Privileges,' |
1174 |
' UC.Update_Columns,' |
1175 |
' RC.Reference_Columns,' |
1176 |
' UP.RDB$GRANTOR as GrantedBy,' |
1177 |
' coalesce(UP.RDB$GRANT_OPTION,0) as GRANT_OPTION' |
1178 |
' From RDB$USER_PRIVILEGES UP' |
1179 |
' JOIN RDB$TYPES T1 On T1.RDB$TYPE = UP.RDB$USER_TYPE and T1.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE''' |
1180 |
' JOIN RDB$TYPES T2 On T2.RDB$TYPE = UP.RDB$OBJECT_TYPE and T2.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE''' |
1181 |
' Left Outer JOIN (' |
1182 |
' Select RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME,' |
1183 |
' List(Trim(RDB$FIELD_NAME)) as Update_Columns' |
1184 |
' From RDB$USER_PRIVILEGES Where RDB$PRIVILEGE = ''U''' |
1185 |
' Group By RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME) UC' |
1186 |
' On UC.RDB$USER = UP.RDB$USER and UC.RDB$USER_TYPE = UP.RDB$USER_TYPE and' |
1187 |
' UC.RDB$OBJECT_TYPE = UP.RDB$OBJECT_TYPE and UC.RDB$RELATION_NAME = UP.RDB$RELATION_NAME' |
1188 |
' Left Outer JOIN (' |
1189 |
' Select RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME,' |
1190 |
' List(Trim(RDB$FIELD_NAME)) as Reference_Columns' |
1191 |
' From RDB$USER_PRIVILEGES Where RDB$PRIVILEGE = ''R''' |
1192 |
' Group By RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME) RC' |
1193 |
' On RC.RDB$USER = UP.RDB$USER and RC.RDB$USER_TYPE = UP.RDB$USER_TYPE and' |
1194 |
' RC.RDB$OBJECT_TYPE = UP.RDB$OBJECT_TYPE and RC.RDB$RELATION_NAME = UP.RDB$RELATION_NAME' |
1195 |
' Where Trim(UP.RDB$USER) || UP.RDB$USER_TYPE = :ID and' |
1196 |
' (not (UP.RDB$OBJECT_TYPE in (0,9,13)) or' |
1197 |
' (UP.RDB$OBJECT_TYPE in (0,13) and' |
1198 |
' not Exists(Select * from RDB$RELATIONS Where RDB$RELATION_NAME = UP.RDB$RELATION_NAME and RDB$SYSTEM_FLAG <> 0)) or' |
1199 |
' (UP.RDB$OBJECT_TYPE = 9 and UP.RDB$RELATION_NAME not Similar to ''RDB$%|SEC$%|MON$%|SQL$%'')' |
1200 |
' )' |
1201 |
' Group BY UP.RDB$USER,UP.RDB$USER_TYPE,UP.RDB$OBJECT_TYPE,' |
1202 |
' UP.RDB$RELATION_NAME, UP.RDB$GRANTOR, RDB$GRANT_OPTION,T1.RDB$TYPE_NAME,' |
1203 |
' T2.RDB$TYPE_NAME, UC.Update_Columns, RC.Reference_Columns' |
1204 |
'' |
1205 |
) |
1206 |
Params = < |
1207 |
item |
1208 |
DataType = ftUnknown |
1209 |
Name = 'ID' |
1210 |
ParamType = ptInput |
1211 |
end> |
1212 |
DataSetCloseAction = dcDiscardChanges |
1213 |
left = 648 |
1214 |
top = 336 |
1215 |
ParamData = < |
1216 |
item |
1217 |
DataType = ftUnknown |
1218 |
Name = 'ID' |
1219 |
ParamType = ptInput |
1220 |
end> |
1221 |
end |
1222 |
object IBXServicesConnection1: TIBXServicesConnection |
1223 |
Connected = False |
1224 |
OnLogin = IBXServicesConnection1Login |
1225 |
Params.Strings = ( |
1226 |
'sql_role_name=RDB$ADMIN' |
1227 |
) |
1228 |
TraceFlags = [] |
1229 |
left = 640 |
1230 |
top = 48 |
1231 |
end |
1232 |
object IBStatisticalService1: TIBXStatisticalService |
1233 |
ServicesConnection = IBXServicesConnection1 |
1234 |
TraceFlags = [] |
1235 |
Options = [HeaderPages] |
1236 |
left = 48 |
1237 |
top = 287 |
1238 |
end |
1239 |
object IBConfigService1: TIBXConfigService |
1240 |
ServicesConnection = IBXServicesConnection1 |
1241 |
TraceFlags = [] |
1242 |
left = 168 |
1243 |
top = 283 |
1244 |
end |
1245 |
object IBServerProperties1: TIBXServerProperties |
1246 |
ServicesConnection = IBXServicesConnection1 |
1247 |
TraceFlags = [] |
1248 |
left = 40 |
1249 |
top = 365 |
1250 |
end |
1251 |
object IBLogService1: TIBXLogService |
1252 |
ServicesConnection = IBXServicesConnection1 |
1253 |
TraceFlags = [] |
1254 |
left = 168 |
1255 |
top = 365 |
1256 |
end |
1257 |
object IBSecurityService1: TIBXSecurityService |
1258 |
ServicesConnection = IBXServicesConnection1 |
1259 |
TraceFlags = [] |
1260 |
UserID = 0 |
1261 |
GroupID = 0 |
1262 |
AdminRole = False |
1263 |
left = 36 |
1264 |
top = 437 |
1265 |
end |
1266 |
object IBValidationService1: TIBXValidationService |
1267 |
ServicesConnection = IBXServicesConnection1 |
1268 |
TraceFlags = [] |
1269 |
OnGetNextLine = IBValidationService1GetNextLine |
1270 |
Options = [ValidateFull] |
1271 |
left = 632 |
1272 |
top = 416 |
1273 |
end |
1274 |
object IBOnlineValidationService1: TIBXOnlineValidationService |
1275 |
ServicesConnection = IBXServicesConnection1 |
1276 |
TraceFlags = [] |
1277 |
OnGetNextLine = IBValidationService1GetNextLine |
1278 |
left = 40 |
1279 |
top = 503 |
1280 |
end |
1281 |
object LegacyUserList: TIBXServicesUserList |
1282 |
FieldDefs = < |
1283 |
item |
1284 |
Name = 'UserID' |
1285 |
DataType = ftInteger |
1286 |
Precision = -1 |
1287 |
end |
1288 |
item |
1289 |
Name = 'GroupID' |
1290 |
DataType = ftInteger |
1291 |
Precision = -1 |
1292 |
end |
1293 |
item |
1294 |
Name = 'SEC$USER_NAME' |
1295 |
DataType = ftString |
1296 |
Precision = -1 |
1297 |
Size = 31 |
1298 |
end |
1299 |
item |
1300 |
Name = 'SEC$FIRST_NAME' |
1301 |
DataType = ftString |
1302 |
Precision = -1 |
1303 |
Size = 32 |
1304 |
end |
1305 |
item |
1306 |
Name = 'SEC$MIDDLE_NAME' |
1307 |
DataType = ftString |
1308 |
Precision = -1 |
1309 |
Size = 32 |
1310 |
end |
1311 |
item |
1312 |
Name = 'SEC$LAST_NAME' |
1313 |
DataType = ftString |
1314 |
Precision = -1 |
1315 |
Size = 32 |
1316 |
end |
1317 |
item |
1318 |
Name = 'SEC$PASSWORD' |
1319 |
DataType = ftString |
1320 |
Precision = -1 |
1321 |
Size = 32 |
1322 |
end |
1323 |
item |
1324 |
Name = 'SEC$ADMIN' |
1325 |
DataType = ftBoolean |
1326 |
Precision = -1 |
1327 |
end |
1328 |
item |
1329 |
Name = 'SEC$PLUGIN' |
1330 |
DataType = ftString |
1331 |
Size = 21 |
1332 |
end |
1333 |
item |
1334 |
Name = 'SEC$ACTIVE' |
1335 |
DataType = ftBoolean |
1336 |
end |
1337 |
item |
1338 |
Name = 'LOGGEDIN' |
1339 |
DataType = ftBoolean |
1340 |
end |
1341 |
item |
1342 |
Name = 'DBCREATOR' |
1343 |
DataType = ftBoolean |
1344 |
end> |
1345 |
AfterOpen = LegacyUserListAfterOpen |
1346 |
BeforeClose = LegacyUserListBeforeClose |
1347 |
AfterInsert = UserListAfterInsert |
1348 |
AfterPost = LegacyUserListAfterPost |
1349 |
Source = IBSecurityService1 |
1350 |
left = 167 |
1351 |
top = 438 |
1352 |
end |
1353 |
object InLimboList: TIBXServicesLimboTransactionsList |
1354 |
FieldDefs = < |
1355 |
item |
1356 |
Name = 'TransactionID' |
1357 |
DataType = ftInteger |
1358 |
Precision = -1 |
1359 |
end |
1360 |
item |
1361 |
Name = 'TransactionType' |
1362 |
DataType = ftString |
1363 |
Precision = -1 |
1364 |
Size = 16 |
1365 |
end |
1366 |
item |
1367 |
Name = 'HostSite' |
1368 |
DataType = ftString |
1369 |
Precision = -1 |
1370 |
Size = 256 |
1371 |
end |
1372 |
item |
1373 |
Name = 'RemoteSite' |
1374 |
DataType = ftString |
1375 |
Precision = -1 |
1376 |
Size = 256 |
1377 |
end |
1378 |
item |
1379 |
Name = 'DatabasePath' |
1380 |
DataType = ftString |
1381 |
Precision = -1 |
1382 |
Size = 256 |
1383 |
end |
1384 |
item |
1385 |
Name = 'State' |
1386 |
DataType = ftString |
1387 |
Precision = -1 |
1388 |
Size = 32 |
1389 |
end |
1390 |
item |
1391 |
Name = 'RecommendedAction' |
1392 |
DataType = ftString |
1393 |
Precision = -1 |
1394 |
Size = 32 |
1395 |
end |
1396 |
item |
1397 |
Name = 'RequestedAction' |
1398 |
DataType = ftString |
1399 |
Precision = -1 |
1400 |
Size = 32 |
1401 |
end> |
1402 |
Source = IBLimboTrans |
1403 |
left = 296 |
1404 |
top = 496 |
1405 |
end |
1406 |
object IBLimboTrans: TIBXLimboTransactionResolutionService |
1407 |
ServicesConnection = IBXServicesConnection1 |
1408 |
TraceFlags = [] |
1409 |
GlobalAction = CommitGlobal |
1410 |
left = 176 |
1411 |
top = 496 |
1412 |
end |
1413 |
end |