Как сделать так, чтобы база данных не была видна при установке приложения?

#c# #.net

#c# #.net

Вопрос:

Я начал создавать свое собственное приложение на c #, используя Microsoft Access в качестве базы данных. Проблема в том, что после того, как я создал свой exe-файл с помощью этого программного обеспечения, которое я нашел в Интернете, при установке база данных всегда доступна на диске c. Должен ли я вместо этого использовать другие базы данных? просветите меня, пожалуйста.

Комментарии:

1. Добро пожаловать в SO. Что вы подразумеваете под видимостью, и почему это имеет значение?

2. Какова природа данных в базе данных?

3. Если база данных доступна на диске c, создание программного обеспечения становится бессмысленным, потому что кто-то может просто манипулировать данными внутри него вместо использования самого программного обеспечения. Есть ли способ скрыть базу данных?

4. Что бы вы ни пытались, если база данных локальная, есть способ получить к ней доступ. Если это такие сверхкритичные / конфиденциальные данные, пересмотрите свою концепцию.

5. @Jezer Мы не знаем, какой тип решения вы пишете, но идея в том, что даже с защитой паролем вашей базы данных access это довольно бесполезно и легко поддается взлому. Ваш единственный вариант локальной безопасности — это шифрование, и это приводит к значительному снижению производительности, потому что вы будете выполнять шифрование и дешифрование при чтении и записи.

Ответ №1:

У вас есть несколько вариантов:

  • Поместите базу данных в труднодоступное место, например AppData
  • Используйте функции пароля / шифрования Access; ограничен и может быть взломан
  • Зашифруйте данные в базе данных, которая имеет ограничения, упомянутые @HMZ
  • Используйте онлайн-базу данных

Вы можете либо затруднить поиск данных и доступ к ним, либо, если вам нужна полностью защищенная база данных, использовать шифрование или онлайн-базу данных. При использовании онлайн-базы данных вам потребуется разместить ее и, вероятно, обеспечить многопользовательский доступ.

Вам нужно понимать риски каждого решения и принимать соответствующие решения.

Ответ №2:

Если ваше программное обеспечение представляет собой WinForm / WPF или любую программу, созданную на языке программирования, таком как C #, то база данных не обязательно должна находиться на C диске, потому что это язык программирования, который управляет подключением к базе данных access (обычно: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<your .accdb file location> , а также вы можете использовать пароль для нее, чтобы скрыть ее, вы можете переименовать .accdb в .dll , тогда никто не узнает, что это база данных access, также вы можете добавить пароль)