Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
Разработчики программного обеспечения часто спрашивают, как распространять свое приложение SQL Server данных клиентам, предотвращая анализ и деконструкцию приложения клиентами. Ключевой принцип заключается в том, что защита интеллектуальной собственности является юридическим вопросом и что она основана на вашем лицензионном соглашении. При установке SQL Server на компьютере, который администрируют другие, вы в определенной степени теряете контроль.
Природа проблемы
Владелец или администратор компьютера всегда может получить доступ к экземпляру SQL Server, установленному на этом компьютере. При развертывании приложения на компьютер клиента, поскольку они администраторы, они могут подключаться к SQL Server как члены фиксированной роли сервера sysadmin. Это включает возможность предоставлять разрешения, управлять резервными копиями (включая восстановление резервных копий на других компьютерах), расшифровывать и перемещать файлы данных и многое другое. Дополнительные сведения см. в разделе Подключение к SQL Server, когда системные администраторы заблокированы.
Хранимые процедуры и данные могут быть зашифрованы, но структура данных не может быть скрыта, и пользователи, которые могут подключить отладчик к процессу сервера, могут извлекать расшифрованные процедуры и данные из памяти во время выполнения.
Если клиенты не являются администраторами на компьютерах, вы можете предотвратить их доступ. Вы можете использовать Transparent Data Encryption для шифрования файлов данных, шифрования резервных копий и аудита действий всех пользователей. Но SQL Server администраторы и администраторы компьютера SQL Server могут отменить эти действия.
Решение
Существуют различные способы настройки доступа к данным клиента без установки SQL Server на компьютере клиента. Проще всего использовать Azure SQL Database поэтому клиенты не являются администраторами, возможно, в сочетании с Always Encrypted. Дополнительные сведения о начале работы с базой данных SQL см. статью Что такое Azure SQL Database?.
Вы также можете разместить SQL Server в собственной сети, и разрешить клиентам получать доступ к данным через сеть напрямую или через веб-приложение.