База данных MS Access (запрет открытия Access'ом)
Столкнулся с такой проблеммой:
У меня есть приложение, которое работает с База данных MS Access, в корне программы лежит сама база данных, как можно защитить (запретить) открытие бызы Access'ом? Юзер может открыть Access'ом базу и редактировать как его душе угодно.
у меня такая мысль - задать пароль на базу, но юсеру пароль вводить руками нельзя, потомучто он также откроет через ацесс - введя пароль. А вот вшить пароль в мою прогу, это подходит. Я думаю так - когда выскакивает логин и пароль к базе ацесс (перед запуском проги) автоматом заполняются данные, так как они под звездочками, юсер их не увидит и соответственно не будет знать пароля доступа к самой базе. Вот вопрос как это автоматическое заполнение реализовать??? Может через вин апи, никогда с ними не работал ((
в ADOConnection->ConnectionString есть логин\пароль, которые будут храниться в exe-шнике.
в ADOConnection->ConnectionString есть логин\пароль, которые будут храниться в exe-шнике.
у меня через BDE
и переделывать уже нельзя, так как прога сделана и продана (((((
не вяжется друг сдругом... переделывать все равно придется...
нежели ловить всякие окна и автоматом их заполнять, нажимать OK и проч. легче апдейт софта своего произвести
к стати а Аксессе на БД можно свойства поставить, что отображать при открытии (формы там, отчеты и прочую лабуду) там же можно запретить открывать структуру БД. Только это на лохов защита, ломается по Shift+Enter (вроде)... Аксесс к сожалению не стоит, точнее сказать не могу
нежели ловить всякие окна и автоматом их заполнять, нажимать OK и проч. легче апдейт софта своего произвести
ну есть разница - как то вшить пароль. и пеерстраивать структуру проги - у меня там куча таблиц и все на бде, и все связаны, одну поменяю и все менять надо, а там и методв менять, короче пипец ((((((
Столкнулся с такой проблеммой:
У меня есть приложение, которое работает с База данных MS Access, в корне программы лежит сама база данных, как можно защитить (запретить) открытие бызы Access'ом? Юзер может открыть Access'ом базу и редактировать как его душе угодно.
у меня такая мысль - задать пароль на базу, но юсеру пароль вводить руками нельзя, потомучто он также откроет через ацесс - введя пароль. А вот вшить пароль в мою прогу, это подходит. Я думаю так - когда выскакивает логин и пароль к базе ацесс (перед запуском проги) автоматом заполняются данные, так как они под звездочками, юсер их не увидит и соответственно не будет знать пароля доступа к самой базе. Вот вопрос как это автоматическое заполнение реализовать??? Может через вин апи, никогда с ними не работал ((
Что бы не мучаться с подобными проблемами - надо нормально организовывать приложение.
Кроме того, оставляя в стороне рукожопость подобного решения (типа зашить пароль в программе и т.п.), что мешает оставлять пользователю только ввод имени - а пароль в строку подключения подставлять автоматом?
Кроме того, оставляя в стороне рукожопость подобного решения (типа зашить пароль в программе и т.п.), что мешает оставлять пользователю только ввод имени - а пароль в строку подключения подставлять автоматом?
слишком широкое и многозначащее решение данной проблеммы - "надо нормально организовывать приложение"
к стати, на случай если БД разрастется на много юзеров, потом проще к SQL серверу через ADO цепляться
Ну а что - вы ждете готового решения? Да широкое и многозначное. Почему то если мне необходимо кардинально - я подчеркиваю КАРДИНАЛЬНО изменить работу с базой - то для этого мне необходимо внести изменения в 3-5 местах приложения объемом свыше 100К самописного кода. И это нормально - и возможно даже много. Если вы утверждаете что переход с BDE на ADO - это сложнейший переход - то может в "консерватории надо чтото поменять?"(с)Жванецкий
Каких рекомендаций вы ждете?
Всю работу с базой желательно(необходимо) инкапсулировать в одном классе? Это просто классика.
Что все задачи - которые возможно (в соответствии с внутренней логикой приложения) - надо выносить на сервер?(в данном случае MSAccess)
Что необходимо использовать именно сервер а не десктопную БД? Тем более что выбор в настоящее время - просто не проблема, было бы желание.
Что вы НЕ МОЖЕТЕ ОБЕСПЕЧИТЬ НОРМАЛЬНЫЙ уровень безопасности используя десктопную(файловую) БД?
Вы делаете свой выбор - и ваша задача понять - что если вы выбираете определенный инструмент - вы так или иначе будете сталкиваться с его ограничениями. Безопасность - далеко не самая сильная сторона MSAccess. Это не его задачи и он для этого не предназначен. Да можно обеспечить относительно нормальный секурный уровень - но надо понимать что это требует определенных затрат - причем весьма не маленьких.