Наша программа поставляется с базой данных SQL Server 2005 и SQL Server 2005 Express. Обычно он устанавливает свой собственный экземпляр SQL Server 2005 на компьютер клиента.
Теперь мне нужно добавить несколько таблиц, содержимое которых должно обновляться только из программы. Мне нужно предотвратить непосредственное изменение этих таблиц, например, с помощью Management Studio.
Как мне этого добиться? Должен ли я установить права пользователя? Могу ли я использовать шифрование? Я думал о том, чтобы установить собственный пароль «sa» для доступа к экземпляру SQL Server и использовать его только из программы, но это не лишит его доступа через проверку подлинности Windows.
[Редактировать] Некоторые разъяснения того, что я пытаюсь сделать. Программа является программой времени и посещаемости. Часы сотрудников собираются из часов и сохраняются в базе данных; собранные данные не могут быть удалены, а их значения даты и времени не могут быть изменены. Поэтому мне нужен способ, чтобы пользователи не могли связываться с этими значениями непосредственно в базе данных.
Имейте в виду, что большинство наших клиентов не имеют никакого опыта работы с SQL, поэтому мне нужно установить эти разрешения при установке программы.
[Изменить 2] Спасибо за ваши ответы, я хотел бы задать еще два вопроса по этой теме:
1 - Могу ли я предоставить разрешения SELECT только тем, кто обращается к БД через проверку подлинности Windows?
2 - Можно ли / целесообразно защитить таблицу от изменений через хэш-систему? Как добавить столбец хеша и вычислить хеш для каждой строки, а затем сравнить данные строки с хешем для проверки изменений?