Войти

Показать полную графическую версию : Вопрос по организации доступа к файлам


smir-pavel
30-11-2011, 22:17
Здравствуйте. Пожалуйста дайте совет по организации доступа к файлам программы.
Ситуация, в которой возникла проблема состоит в следующем:
На локальном компьютере(Window7) есть приложение(VisualBasic6), база данных(MS Access), с которой оно работает, и некоторые другие файлы, нужные для приложения.
Задача состоит в том, чтобы разграничить доступ к этому программному комплексу для "пользователей" и "администраторов". Пользователи не должны видеть внутренних файлов, не должны иметь возможность открыть базу данных независимо от программы средствами MS Access. Работа пользователей должна происходить только через интерфейс программы. Администраторы должны иметь полный доступ. Хотелось бы решить эту задачу, используя средства Windows по ограничению прав доступа к файлам и папкам.
Проблема в том, что самой программе нужны права администратора для работы(использование библиотек ADO, доступ к реестру и т.д.)
Вопрос: как организовать запуск программы с правами администратора обычными пользователями. При этом, конечно, раздавать пользователям данные учетной записи администратора не хотелось бы, и заставлять вводить эти данные в диалоги "запуск от имени администратора" тоже.
Помогите, может кто-то уже сталкивался с подобной задачей. Возможно у нее есть и какое-то другое решение.

P.S. Не судите строго, если разместил этот вопрос не в той категории.

Iska
30-11-2011, 23:22
smir-pavel, вообще-то эти задачи решаться должны средствами и на уровне базы данных (пользователи, разграничение полномочий, шифрование), а не ОС.

smir-pavel
01-12-2011, 18:57
smir-pavel, вообще-то эти задачи решаться должны средствами и на уровне базы данных (пользователи, разграничение полномочий, шифрование), а не ОС. »
Это все хорошо, но как всегда есть одно "но" - не работает.
Я использую ADO-компоненты (Microsoft ADO Data Control 6.0 и Microsoft DataGrid Control 6.0). При использовании просто библиотек, все аналогично.
вот простенький код, который работает с базой db1.mdb
Private Sub Form_Load()
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb"
.CommandType = adCmdText
'.UserName = "user"
'.Password = "12345"

.RecordSource = "SELECT Table1.x FROM Table1"
.Refresh
End With
Set DataGrid1.DataSource = Adodc1.Recordset
End Sub

Если попытаться настроить защиту базы данных и раскомментировать соответствующие строчки, то начинаются проблемы...
Пробовал способы
1. Access/меню Сервис/Защита/Задать пароль базы данных
2. Access/меню Сервис/Защита/Пользователи и группы

Из-за неудачных попыток решил попробовать решить проблему через возможности ОС. Вообще говоря, я уже почти добился нужного функционала, за исключением запуска от имени администратора(см. заглавный пост)
Если интересно, во вложении тестовый проект с кодом приведенным выше и базой db1.mdb. Может у вас получиться достучаться до защищенной базы.

Delirium
02-12-2011, 00:43
самой программе нужны права администратора для работы(использование библиотек ADO, доступ к реестру и т.д.) »
С каких пор для доступа к реестру нужны права администратора? Да, они нужны, но для отдельных веток. В крайнем случае можно дать разрешение на нужные ветки реестра обычным пользователям.
И вообще странно, чего такого использует программа, что требует прав администратора




© OSzone.net 2001-2012