|
Защита базы от взлома, защита связанных таблиц, продолжение
|
|||
---|---|---|---|
#18+
Друзья! Майкрософт отключила защиту на уровне пользователей для формата accdb , поэтому защита с учетной записью здесь не пройдет. Предлагаю следующее: 1. Все таблицы связываются с SQL Server без использования DNS, а таблицы хранятся на сервере SSSSS база DDDDD, где создается универсальный пользователь UUUUU с паролем PPPPPP. Пользователям дается скомпилированный файл ACCDE с установленными защитами от SHIFT со снятой опцией использовать специальные клавиши Access и без просмотра области навигации, без набора меню Access и контекстных меню (задается в параметрах текущей базы). В форме, открывающейся при открытии базы (Форма просмотра) в событии Form_Open вызвать процедуру QM: Sub QM() Dim prp, i%, scy$, ConStr$ ConStr = "ODBC;DRIVER={SQL Server};SERVER=SSSSS;DATABASE=DDDDD;UID=UUUUU;PWD=PPPPPP;APP=Microsoft Office 2013" prp = Array("AllowShortcutMenus", "AllowFullMenus", "AllowBuiltInToolbars", "AllowSpecialKeys", "AllowBypassKey", "StartUpShowDBWindow") For i = 0 To UBound(prp) If CurrentDb.Properties(prp(i)) = True Then scy = scy & prp(i) & Chr(13) Next If scy = "" Then DoCmd.SetWarnings False DoCmd.RunSQL "UPDATE [" & ConStr & "].ТаблицаНаСервере SET Код=-1 WHERE Код=-1;" DoCmd.SetWarnings True Else On Error Resume Next If Application.Modules(0).Type < 0 Then MsgBox "База не защищена", vbCritical End End If End If End Sub Таблицы подключаются кодом: Dim tdf As DAO.TableDef Set tdf = CurrentDb.CreateTableDef(rst!Таблица, dbAttachExclusive, rst!Исходная, ConStr) CurrentDb.TableDefs.Append tdf Логин и пароль хранятся в скомпилированном виде и не видны средствами просмотра. Если у скомпилированного файла accde поменять расширение, то Application.Modules(0).Type даст ошибку. Если хотя бы одно из свойств истина, то будет проверка, что программа запущена на скомпилированной базе. Если все свойства false, то произойдет активация связей инструкцией RunSQL, после чего все запросы, использующие связанные таблицы, будут корректно работать через DAO. Это нужно, что бы пользователи не могли работать с базой напрямую, минуя предоставленный интерфейс, обеспечивающий разделение доступа, и при желании не смогли испортить или удалить чужие данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 14:07 |
|
Защита базы от взлома, защита связанных таблиц, продолжение
|
|||
---|---|---|---|
#18+
Бред. Если есть MS SQL - проще пользоваться его средствами авторизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 14:16 |
|
Защита базы от взлома, защита связанных таблиц, продолжение
|
|||
---|---|---|---|
#18+
aleks2Бред. Если есть MS SQL - проще пользоваться его средствами авторизации. Согласен с предыдущим оратором. У MS SQL своя собственная довольно мощная система защиты. И прикручивать какие-то костыли не комильфо. Проще изучить и разобраться с существующей системой. Отдельный вопрос - доступ к формам. Здесь система безопасности MS SQL Вам не помощник. Я в этом случае составлял таблицу по пользователям и группам. Какой пользователь относится к какой группе, и какой группе доступны какие формы.Такая система перекрывала все требования по доступу к информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 15:04 |
|
Защита базы от взлома, защита связанных таблиц, продолжение
|
|||
---|---|---|---|
#18+
PaulBЭто нужно, что бы пользователи не могли работать с базой напрямую, минуя предоставленный интерфейс, обеспечивающий разделение доступа, и при желании не смогли испортить или удалить чужие данные. Зашифруй какое нибудь текстовое поле своей программой из vba и из программы расшифровывай. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2017, 18:48 |
|
|
start [/forum/topic.php?fid=45&fpage=73&tid=1612326]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 126ms |
0 / 0 |