Как запретить пользователям Windows доступ к файлам данных SQL-сервера

Я работаю в продуктовой компании и предоставлю SQL Server 2014 Express с нашим программным обеспечением. Мне нужен ваш экспертный комментарий по безопасности.

Проблема: поскольку мы устанавливаем базу данных на клиентский ПК, они могут увидеть схему нашей базы данных, присоединив файлы MDF к другому серверу. (На мой взгляд, по имени и данным объектов базы данных другие компании могут легко идентифицировать наш рабочий процесс и могут легко разрабатывать программное обеспечение). Поэтому я хочу какое-то решение для шифрования или файловой системы, чтобы пользователь не мог брать файлы базы данных. И да, поскольку мы используем экспресс-версию, мы не можем использовать доступные параметры шифрования SQL-сервера.


person Vaibhav Shringi    schedule 13.07.2017    source источник
comment
Интересно, что в настоящее время моя компания занимается именно этим, но у пользователя должна быть специальная роль сервера, чтобы открыть фактическую схему. Затем эта роль связывается с их логином. Когда мы создаем логин пользователя, мы используем загадочный логин, такой как ght02%username%, поэтому авторизация Windows не имеет доступа. Единственный известный мне способ получить MDF - это если они либо отсоединили базу данных, либо служба работает. Опять же, это может быть управляемым. Хотя, скорее всего, есть варианты получше. Просто мои два цента.   -  person SCramphorn    schedule 13.07.2017
comment
Возможный дубликат Запретить копирование файла базы данных   -  person SCramphorn    schedule 13.07.2017


Ответы (4)


Интересно, что в настоящее время моя компания занимается именно этим, но у пользователя должна быть специальная роль сервера, чтобы открыть реальную схему.

Затем эта роль связывается с их логином. Когда мы создаем логин пользователя, мы используем загадочный логин, такой как ght02%username%, а не только его учетные данные Windows. Это означает, что если они входят в систему через аутентификацию Windows, у них нет доступа к этой схеме.

Единственный известный мне способ получить MDF - это если они либо отсоединили базу данных, либо служба была остановлена. Опять же, этим можно управлять, отключив их остановку сервера, и они не смогут отсоединиться, если у них нет разрешения.

Хотя, скорее всего, есть варианты получше.

Просто мои два цента.

Также дубликат этого

person SCramphorn    schedule 13.07.2017
comment
При условии, что это клиентский ПК, как заявил OP, клиент может легко получить над ним полный контроль и права администратора. Нет проблем, чтобы остановить любую службу. - person Serg; 13.07.2017

вы можете запретить клиенту копировать файлы, только если у клиента были минимальные разрешения на ящик, в который вы копируете файлы

Я бы порекомендовал базу данных SQLAZURE, она начинается с 5 долларов в месяц, и я считаю, что стандартная ценовая категория наиболее подходит (примерно: 30 долларов в месяц). Таким образом, вы также можете быть уверены, что ваша схема безопасна.

person TheGameiswar    schedule 13.07.2017

Вы можете попробовать стороннее программное обеспечение: https://www.database-encryption.com/ Database могут быть восстановлены/прикреплены только там, где установлено это программное обеспечение. Требуется ключ шифрования для просмотра любой информации из базы данных, бесплатно до 200 МБ размера базы данных (в настоящее время я использую это программное обеспечение)

person Petaflop    schedule 13.07.2017
comment
Если доступ к данным осуществляется на машине, на которой у пользователя есть административные привилегии, у пользователя ВСЕГДА есть способ получить данные. Вы можете запутать его и попытаться усложнить, но, в конце концов, если ваша программа обращается к данным, они могут получить доступ к данным, и они всегда могут найти любой ключ, который вы используете, отлаживая вашу программу. - person James; 13.07.2017
comment
Начиная с того, что ничто не является безопасным на 100%. Есть много программного обеспечения, которое они могут использовать (и, вероятно, они в настоящее время работают) для запутывания своего программного кода, кодирования строк и т. д., что значительно усложнит подобные хаки. Если их конечной целью является защита своего программного обеспечения, я предполагаю, что они уже позаботились об этих моментах. Он просит способ предотвратить такие действия через их базу данных, и я думаю, что это программное обеспечение обеспечивает значительный уровень защиты для этой цели. - person Petaflop; 13.07.2017
comment
Важным уровнем защиты одного человека являются тщетные попытки другого человека спрятаться. Удачи с этим. - person James; 13.07.2017
comment
Тогда давайте перестанем использовать пароли. - person Petaflop; 13.07.2017
comment
Пароли имеют свое место и могут обеспечить большую безопасность, когда данные, которые они защищают, находятся в отдельной системе, к которой у вас нет физического или административного доступа. Если вы хотите эффективно использовать систему безопасности, вы должны понимать, как она работает. - person James; 13.07.2017

Если вы хотите рассмотреть продукт стороннего производителя, есть по крайней мере два, которые могут делать то, что вам нужно, а именно защищать ваши базы данных SQL от ваших клиентов. Один из них принадлежит нам: Encryptionizer for SQL Server. Другой — DBEncrypt. Хотя работают они очень по-разному. Encryptionizer находится между процессом SQL Server и ОС, в то время как DBEncrypt внедряется в процесс SQL в памяти, используя старый SDK Detours.

person Neil Weicher    schedule 25.02.2019