|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
Исходные данные: 1. Допустим есть пустая бд или её описание в любом виде (например txt файл) (Эталон) 2. Есть рабочая бд с данными. Задача: Нужно программно найти изменения структуры в рабочей бд относительно Эталона (типы полей, количество полей в таблицах, удаленные (измененные) связи в схеме данных). Цель: Выявить действия злоумышленников. Решения: - идеальное: это если просто сравнивать рабочий и эталонный mdb - приемлемое: это получить и хранить описание эталона в каком то виде, а потом сравнивать его с рабочей бд Заранее всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 18:02 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
Есть коллекция TableDefs - перебирайте её мемберов, отбрасывая системные, и фиксите все её свойства. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 18:32 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
Стандартные мощные сравняторы схем и данных гнушаются эмдебе? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2014, 20:52 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
П-Л, а можно хоть название таких средств в пример привести? Нашел только mdb_compare но оно как то слабовато и схему данных совсем не проверяет... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2014, 21:37 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
Akina, а можно примерчик строчек на 10, например для конкретной таблицы (цикл по свойствам с выводом их в msgbox)? А то у меня какая то фигня получилась - выводит какие то крестики нолики... Private Sub Кнопка0_Click() Dim i As Long Dim j As Long Dim bd As Database Dim rs As TableDef Set bd = CurrentDb() Set rs = bd.TableDefs("Таблица1") i = rs.Properties.Count For j = 0 To i MsgBox rs.Properties.Item(j) Next j End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2014, 21:46 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
vmagAkina, а можно примерчик строчек на 10, например для конкретной таблицы (цикл по свойствам с выводом их в msgbox)? А то у меня какая то фигня получилась - выводит какие то крестики нолики... Private Sub Кнопка0_Click() Dim i As Long Dim j As Long Dim bd As Database Dim rs As TableDef Set bd = CurrentDb() Set rs = bd.TableDefs("Таблица1") i = rs.Properties.Count For j = 0 To i MsgBox rs.Properties.Item(j) Next j End Sub афигеешь на правый (ежлив он -ё) баттон нажжжжимать ..) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2014, 21:51 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
vmag Исходные данные: 1. Допустим есть пустая бд или её описание в любом виде (например txt файл) (Эталон) 2. Есть рабочая бд с данными. Задача: Нужно программно найти изменения структуры в рабочей бд относительно Эталона (типы полей, количество полей в таблицах, удаленные (измененные) связи в схеме данных). Цель: Выявить действия злоумышленников. Решения: - идеальное: это если просто сравнивать рабочий и эталонный mdb - приемлемое: это получить и хранить описание эталона в каком то виде, а потом сравнивать его с рабочей бд Сам нарыл, ларчик просто открывается... Рыл не долго (хоть и 7 лет прошло), просто опять понадобилось... таки если hdd пылит, связи могут пропадать и после сжатия- восстановления не восстанавливаться... минимальный трабл - всё работает, но с непонятными тормозами... - ну во-первых, изменения полей не существенно, если некто поковырялся (или само ёк), то лишнее на интерфейс не влияет, а недостающее вылезет в виде ошибки в интерфейсе или отчете... - а вот со связями всё просто: Вот так получаем названия связей Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Кстати они ни о чем, ибо могут меняться при профилактике БД, и меньшая часть их именована именами двух таблиц (см. последний столбец на картинке) НО! Лежит это всё хозяйство здесь: MSysRelationships 1. Выводим в доп. таблицу (или txt) содержимое этой таблицы из эталонной бд с сортировкой по полям (достаточно четырех: кто с кем и по каким полям) - отмечены галками... 2. Теперь достаточно тупо сравнить содержимое рабочей MSysRelationships с содержимым от эталонной бд ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 15:31 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
vmag, Это хорошо, если вы используете схему данных. многие её не использую(я в том числе). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 15:42 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
Кстати, поле grbit это тип связи: 4352 - по полной (целостность + каскадные удаления и обновления) 2 - это просто связь без целостности 256 - это целостность только с каскадным изменением ну и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 16:09 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
ROI многие её не использую(я в том числе). Это плохо... соответственно... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 16:12 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
а штатное "средство документирования базы данных"(архивариус) .Провести её анализ после начала использования (это и будет эталон). Сравнивать глазками. Не.... А вообще backup (который,в разумных пределах,надо делать часто)никто не отменял ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 16:38 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
sdku Сравнивать глазками. Не.... vmag 2. Теперь достаточно тупо сравнить содержимое рабочей MSysRelationships с содержимым от эталонной бд кто ж такие вещи глазками делает? нажал кнопку Проверить, получил или ОК или список НЕ ОК... Да и с бэкапами, не так все просто, иногда приходится выбирать - терять месяц работы или чинить, бэкапы то есть, да вот плюха всплыла через месяц... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 16:55 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
При нажатии кнопки тоже не все просто:каковы критерии ОК или НЕ ОК? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 19:04 |
|
Как программно протестировать структуру базы данных ?
|
|||
---|---|---|---|
#18+
sdku При нажатии кнопки тоже не все просто:каковы критерии ОК или НЕ ОК? Критерии элементарные: - показать недостающие связи в тестируемой БД по отношению к эталонной (лишних то не будет) - показать не совпадающие grbit (потерялась целостность или каскадность) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2021, 19:42 |
|
|
start [/forum/topic.php?fid=45&msg=40087360&tid=1609633]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
130ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 236ms |
0 / 0 |