#sql-server
#sql-сервер
Вопрос:
У меня есть два вопроса, на которые я не могу найти ответа. Я уже много искал.
Ситуация, в которой я буду развертывать приложение C # winforms на клиенте, в приложении есть пользователи, которые должны подключаться к моей базе данных на любом хосте, чтобы подтвердить, что они уже вошли в систему, чтобы предотвратить повторный вход одного и того же пользователя с других компьютеров, поэтому, в основном, когда пользователь входит в систему, приложение отправляет команду нав моей базе данных зарегистрирован пользователь XYZ.
Вопросы
Первый и самый важный: как получить доступ к моему серверу MSSQL со стороны клиента, не вводя строку подключения, потому что, как вы знаете, кто-то может декомпилировать приложение и найти пользователя и пароль, так что в основном, как МАРКИРОВАТЬ или ШИФРОВАТЬ строку подключения sql (может быть, затем будет расшифрована в SQL server но я тоже не знаю, как это сделать)
Второй вопрос: насколько эффективно реализовать описанную выше ситуацию, как вы знаете, легко отправлять команды, которые привет, я вошел в систему, и привет, я вышел из системы (когда пользователь нажимает «Выйти»), НО… Что, если отключится электричество? у приложения не будет возможности отправить команду выхода на мой сервер, и поэтому пользователь будет АВТОРИЗОВАН на моем сервере, даже если он на самом деле не является.
Надеюсь, я правильно описываю свои вопросы.
Комментарии:
1. Вы не найдете ответов, потому что способ обеспечить безопасный доступ к SQL Server — это поставить собственный сервер между клиентами и сервером базы данных. Это может управлять аутентификацией и т. Д. И Обеспечивать безопасность собственных строк подключения, поскольку они не используются клиентами.
2. Если бы вы могли ограничить размещение SQL server внутри домена клиента (AD), то вы могли бы использовать Windows security для доступа к SQL server — таким образом, вам вообще не нужно хранить информацию об аутентификации. Это не решает проблемы двойного входа в систему; для этого вы могли бы использовать блокировки приложений. На мой взгляд, такие ограничения на вход в систему в любом случае бесполезны — вам будет сложно преобразовать ваше приложение в веб-приложение или приложение без состояния, вам нужно правильно обрабатывать любые сетевые сбои и другие подобные проблемы.
3. Что касается вашего первого вопроса: ничто в вашем вопросе не исключает проверку подлинности Windows. Вы никогда не должны использовать аутентификацию SQL (пользователь / пароль), если вы можете использовать аутентификацию Windows. Что касается вашего второго вопроса: что вы на самом деле пытаетесь сделать? Вы правы в том, что все эти решения для мьютексов вручную страдают от «зависания», если возникает непредвиденное состояние. Итак, что вы пытаетесь сделать?