|
|
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
ага, вот и ссылочка. Именно это я и имел в виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 19:26 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
>Вот и решил обсудить Защита на уровне менюшек делается примерно так 1)Заходишь в сервис-параметры запуска и убираешь там вредные галки 2)Защищаешься от открытия с шифтом(из какого-то модуля выдрал, не уверен что работает, но разобраться можно) Private Sub SetBypassProperty() ChangeProperty "AllowBypassKey", DB_BOOLEAN, False '!!!!!!!!!!!!!!!!!!!!!!!!!!! End Sub Private Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer Dim dbs As Object, prp As Variant Const conPropNotFoundError = 2455 Set dbs = CurrentProject On Error GoTo Change_Err dbs.Properties(strPropName) = varPropValue ChangeProperty = True Change_Bye: Exit Function Change_Err: If Err = conPropNotFoundError Then ' Property not found. dbs.Properties.Add strPropName, varPropValue Resume Next Else ' Unknown error. ChangeProperty = False Resume Change_Bye End If End Function 3)Делаешь mde 4) Успокаиваешься:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 07:47 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
2 Shark Ты не в теме. Хоть обснимайся ты вредных галок и обзащищайся от шифта - через стандартные меню окно базы данных у тебя покажется. 2 assa И тут юзер качнет (с известного ему сайта) раскрывалку юзеров и их UID-ов От взлома mdw не защититься. Это я и имел в виду когда говорил про защиту аксеса "насколько она вообще возможна". Но защитить таблицы от пользователей, работающих под обычными логинами - никогда не повредит. Я бы делал это в первую очередь (а уж потом меню скрывал). Да, кстати, а кто тебя заставляет давать пользователю mdw-шник с кошерным пользователем? Лежит этот mdw у разработчика, пользователи его никогда в руки не получают, и крякалками взломать не смогут. Что хоть немного да лечит ситуацию. 2 Creator Это так опускает бедный комп работающий под access Ничуть не опускает. У тебя формочка висит на таблице? Ну так повесь ее на сохраненный запрос "Select * From TableName With OwnerAccess Option". И получишь ты, что напрямую к таблицам обычный юзер не сможет обратится ни через связанные таблицы, ни через случайно всплывшее окно базы данных, а вот через приложение - сможет. Когда (если) понадобится - уже над этим наворачивай RLP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 09:41 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
2LP >>Лежит этот mdw у разработчика, пользователи его никогда в руки не получают, и крякалками взломать не смогут ? в смысле по входу - кодом переподключать .SystemDB .DefaultUser и .DefaultPassword, а также закатать это фсе в mde ? Да так, чтобы owner (и пользователи) mde не имел доступа к таблицам (до переподключения)? Тогда, таблицы - заведомо в другой бд (права на объекты, если помню правильно, лежат в базе, разве что вхождениями в группы регулируются снаружи), а ее owner-а юзер найдет крякалкой, если прознает путь подключения... А можно ли запретить ему прознать путь "в лехкую", например подключившись как овнер mde и запросив поля MSysObjects ? SELECT DISTINCTROW MSysObjects.Database, MSysObjects.Connect, MSysObjects.ForeignName, MSysObjects.Name FROM MSysObjects WHERE (((MSysObjects.Database) Is Not Null)) OR (((MSysObjects.Connect) Is Not Null)); Или вообще другое решение? чей-то не соображу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 10:52 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
2 Асса Зачем кодом что-то перелопачивать? Ниче не понял из твоего поста. С понималкой видно туго по утрам. Пытаюсь разжевать более подробно Закатать все в mde - однозначно (если противопоказаний нет) Разумеется разделить данные и интерфейс. Даже не из соображений безопасности. Доступ к таблицам закрыть для всех, кроме одного пользователя (владельца). Владелец всех объектов в базе, в том числе и запросов - именно этот пользователь. Под ним запросы и исполняются, за счет этого доступ к данным и имеют. Пользователи входят в базу (интерфейсную часть) под своими собственными логинами. Что не мешает работать запросам. Патамушта With OwnerAccess Option. Но напрямую с таблицами работать не выйдет, ни из этой базы (клиентской части) в случае случайно всплывшего окна, ни из любой другой. Ты сказал (или я так понял), что юзер может взять файл рабочих групп (mdw), взломать его любой крякалкой, и заходить под кем угодно, в том числе под супер-пупер пользователем. И делать что угодно. Так не давать ему тот mdw-шник, в котором нужный пользователь есть (владелец объектов). Не имея нужного mdw-шника человек может узнать максимум UID владельца объектов. Ну дык и что он с ним будет делать? В окне логина его вбивать? Это все не панацея, но на аксесовском безрыбье... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 11:08 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
Есть прога Сергея Гаврилова (кажется), которая ИМЕННО по приложению возвращает овнера и его УИД. Посему, узнав его, злой юзер создает СВОЙ mdw с требуемым овнером и уидом уже СО СВОИМ паролем. В менеджере групп (правда, должен иметь права админа в в2000 на машину, на которой будет это делать) переподключает mdw и делает с таблицами что хочет.\r \r Либо (если прав админа на тачку нет) подключается к новому mdw программно (- Насчет .SystemDB я, похоже, соврал. когда-то, казалось, пробовал; - но сейчас перепроверил - не меняет. Или я что-то не так творю.)\r - после входа в свой новый mdb (пишет в процедуре че нить\r Set DBE = GetObject("", "DAO.PrivateDBEngine.36") \r DBE.SystemDB = strSysFilePath \r DBE.DefaultUser = strUserName \r DBE.DefaultPassword = strPassword \r Set db = DBE.OpenDatabase(...) )\r , затем подключает (видимо кодом) требуемые таблицы - ибо для этого нужнО только совпадение логина и уида пользователя (имеющего права), но не путь к mdw, - и вот и ладушки. А что подключать - может выянить "на дому", забрав копию базки, если сможет :0). Там то он поимеет нужные права для подключки менеджером.\r \r К тому же (и главное) я не понял, как юзер не будет видеть SystemDB, если для работы ему нужны ВСЕ права (и на чтение и на запись) на эту дрянь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 12:08 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
Я опять ничего не понимаю. У юзера есть логин, пароль, UID. Все это хранится в mdw. У объекта базы данных есть владелец. Его UID хранится в базе (привязанный к объекту). Если у пользователя отсутствует исходный mdw, в котором лежит вся информация о полноправном пользователе, то он может получить максимум UID (из базы). Что он с этим UID-ом будет делать? Создаст пользователя с таким UID? Может это пробел в моем образовании, но я не знаю как это сделать. Можно, наверное, ну да и хрен с ним. Если кто помнит ссылку на такую софтинку - киньте ей в меня. Поиграю на досуге. Нет так нет. злой юзер создает СВОЙ mdw с требуемым овнером Как это? правда, должен иметь права админа в в2000 на машину, на которой будет это делать На хера ему права админа? Чтоб аксес запустить с нужным mdw? См. параметры коммандной строки. К тому же (и главное) я не понял, как юзер не будет видеть SystemDB, если для работы ему нужны ВСЕ права (и на чтение и на запись) на эту дрянь Это о чем вообще? Какой-то разговор слепого с глухим. Удаляюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 13:13 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
А. По пунктам: 1. Создал новый mdw. (New.mdw) 2. Запустил Access с ним (New.mdw). (Ага, вот и ладушки - с параметром командной строки - не все, что можно, вспоминаешь в нужный момент). Естественно перший раз Вы - admin. 2. Создал в New.mdw юзера с логином owner-а требуемой БД и уидом ("кодом" диалога создания нового пользователя Аксес, если лохи не в курсе. Поскольку мдв (и мдб, в каком мы это будем делать) свежий, то ничто не мешает). Кстати сказать, это (ввод точно таких же юзеров с точно такими же кодами) рекомендуемый способ восстановления мдв при случайном или еще каком его крахе (без наличия резервных копий). (Правда при этом надо видимо заранее в сейф запечатать вводимые уиды, иначе ведь в нужный момент недокличешься, без прилад типа прилады СГ). // для нас достаточно ввести именно только овнера.// 3. Задаем стандартному админу (admin) в New.mdw пароль, входим теперь как новый юзер в аксесс (как правильно напомнил ЛП - с параметром стартовой строки New.mdw). И, (о радость) - открываем "взламываемый" файл с правами его ownera. Что в пунктах не ясно? ___ В. Убери права на чтение/запись у юзера на файл system.mdw и попробуй под ним (юзером) подключиться к Аксесу имеено с этим system.mdw. Неужто получается? У меня матерится, почем зря. Так вот, я и не понимаю, как >>не давать ему тот mdw-шник<< Что тут не ясно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 14:08 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
2ЛП >Если кто помнит ссылку на такую софтинку - киньте ей в меня. Поиграю на досуге. Нет так нет. От Serge Gavrilov http://accesstools.narod.ru - Users' passwords viewer v2.0 (правда показывает только пароли), но возможно сам Serge Gavrilov, что-нибудь прояснит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 14:16 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
>Ты не в теме Обидно, блин :-( 5 лет ентим пользуюсь, и на тебе.. Если серьезно, то стандартные меню- это одна из вредных галок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 14:17 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
брал там же, только (по моему), MS Access' 95/97/2000 databases password tool v2.2 . В поле Database owner показывает USER .... PID ... (ага, кажется понял - прошу прощения за непонятки с уид - склероз в тяжолой форме - PID!=UID ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 14:44 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
sid, pid, uid, guid, huid запутаешься с ними при создании пользователя - воодится код. это совсем не то же самое, что SID (PID), хранящийся в базе. Прога Сержа Гаврилова показывает именно SID (PID). Может (наверняка) есть возможность своему пользователю в своем mdw запихнуть этот SID (PID), но я такой возможности не знаю. Разрабатываешь базу с неким mdw. В нем есть пользователь-владелец всех объектов. Перед распространением проги из mdw убиваешь этого пользователя. Если зайти в приложение под любым другим логином из этого коцанного mdw-шника - владелец у всех объектов "неизвестный". Но он есть, и все запросы от его имени преспокойно работают. Этот коцанный mdw-шник и отдаешь на откуп юзерам. Пусть ломают как хотят. Все равно не смогут оттуда вытащить пароль пользователя-владельца, патамушта этого пользователя там нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 15:09 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
Боюсь, лох, ты тут не прав. Посмотри справку по МС Акс. "Личный код, он же PID". Я просто уже ДЕЛАЛ то, что предлагал выше - вводил возвращаемый PID в поле код при создании "нового" юзера (правда, использовал .mda). И подключался к "чужой" бд в качестве владельца. Правда делал я это с год назад. Исключительно в исследовательских целях. Т.к. пароль владельца в "старой" system.mda я и так знал "по обязанности". Не уверен, что пользовался приладой СГ, но вроде бы больше нечем - надо перепроверить - делал я это дома. Все есть под рукой, но ломает напрягаться в тяпницу). Файл Access хранит не только Login-ы, но и PID-ы юзеров. А так же все их права на объекты (или права групп, но тогда доступ осуществляется только через проверку вхождения в группы - т.е. через проверку системника). Именно поэтому достаточно одинаково ввести юзеров (с кодами) в системники, чтобы подключатся к одной и той же бд используя то тот - то этот .mdw (если ты имешь права как юзер self, а не как член группы - а это всегда верно для owner-а). (Наверное, именно поэтому PID доступен программно только на запись, но не на чтение. Как Гаврилов это обходит - его ноу-хау). А отсутствие юзера в системной базе не означает, что его PID недоступен из БД. Он просто "спрятан", но не очень хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 17:34 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
А ты не боись того что я неправ. Патамушта я прав :) Именно приблуда Сержа Гаврилова выдает именно PID (который на самом деле SID), который нифига не код (который PID при создании пользователя). И если ты этот PID (который SID) вобьешь при создании юзера - нифига хорошего ты не получишь. Т.е. владельцем объектов ты не станешь, доступа к данным не получишь. Проверил только что. А если вбивать при создания пользователя PID (который код) - все ок. Только как из PID (который SID) получить код (который PID) - хз. Файл Access хранит не только Login-ы, но и PID-ы юзеров Не PID, а SID А PID скорее всего и не хранится. Он используется для получения SID. Насколько сложно обратное преобразование сделать - да и хрен его знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 17:56 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
Я патаму и написал, что "боюсь", ибо не помню, какую приладу юзал :). Помню, что похожа была на экзешник (склероз крепчает). А У сГ - .mdb а перепроверять - ленннььь, да такая, чтааа... И даже вот поюзать приладу СГ и то лень. т.ч. поверю пока что на слово :0). Но не на долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 18:22 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
БЕБЕБЕ! Надоело лениться проверил (создал .mda в администраторе групп Access97) Все тики-тики. Прошло, как я и писал. По Гавриловской проге. Версия: в mda вводится в качестве "личного кода" PID, А при вводе в mdw меняется? - отпала, в силу прочтения справки по "преобразованию" mda - .mdw (рекомендуется ввести всех заново руками - тоже мне "преобразование".) Устал ленится второй раз. Создал .mdw (в администраторе групп Access97) Прошло тип. топ. (К сведению: проверяю каждый раз ?dbengine.SystemDB ?dbengine.Workspaces(0).UserName хотя это и так панятна - пароли-то при входе разные - как и устанавливал) БЕ-БЕ-БЕ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 18:47 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
Из всего выше сказаного предлагаю написать прогу для форамального конвертирования запросов c Access на ANSI SQL. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 23:37 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
2LP нашел причину расхождения мнений (PID/SID): прога Гаврилова дает таки PID owner-а, но не прорубает кирилицы. (напоролся надысь, "синхронизируя" разные, разошедшиеся по жизни системники) Т.ч. если в PID-е была кирилица, то "увы". (хорошо, что использовал однозначное правило создания юзарей). А SID -это "закодированный" PID (см. инструкцию по вводу пользователей - там, где рекомендуется "записать PID в бумажку", т.к. "Акес хранит PID в зашифрованном виде"). т.ч. процедура "подьема PID из SID" обязана сущ-вать - там где-то зашито взаимно однозначное преобразование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2003, 11:27 |
|
||
|
Меню в access XP
|
|||
|---|---|---|---|
|
#18+
2 assa Насчет кириллицы. Я ее не использую. Но прогой Сержа Гаврилова все равно не удалось из mdb-шника достать данные, необходимые для воссоздания удаленного из mdw файла пользователя (владельца mdb) Или я тупой, или может мы про разные проги говорим. прога Гаврилова дает таки PID owner-а Хде, хде она его дает??? То что там видел - ни фига на мой родной PID (который код ) не похоже. процедура "подьема PID из SID" обязана сущ-вать ню-ню. Существовать-то она существует, да только сложность обратной процедуры (расшифровки) может на кучу порядков превосходить сложность прямой (шифрования). Простейший пример - взять два очень больших простых числа и перемножить их. Просто? Конечно просто. А потом по произведению найди изначальные множители. Удачи тебе в этом нелегком труде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2003, 11:38 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32282726&tid=1678778]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 382ms |

| 0 / 0 |
