Вам действительно нужен средний уровень.
Где бы вы ни находились, избегайте совместного использования учетных данных базы данных с клиентами. В идеале вы даже не хотите, чтобы межсетевые экраны позволяли подключаться к базам данных извне.
Протоколы соединения между СУБД клиент/сервер не всегда оптимальны для использования через Интернет.
Это все причины, по которым возникла концепция «веб-службы» и использовалась еще до того, как была придумана фраза.
Конечно, это все еще оставляет вам необходимость в учетных данных у клиента. Я бы справился с этим, сохранив их извне, чтобы их можно было обновить. Вы также можете использовать две стадии дешифрования в своих программах, чтобы вы могли разделить процесс, что затрудняет обратное проектирование с декомпилированного/дизассемблированного кода. Сделайте один этап на ранней стадии инициализации, а другой позже, или сделайте второй этап непосредственно перед вашей связью.
Это принципиально невозможно. Если пользователь может запустить ваше приложение, он может видеть, как ваше приложение подключается. Вам нужна какая-то аутентификация пользователей. О чем вы пытаетесь защитить? – SLaks
Возможно, вам захочется скрыть БД за веб-службой (хотя вам все равно потребуется аутентификация пользователей). – SLaks
Я просто не хочу, чтобы мое имя пользователя и пароль были видимыми, чтобы каждый мог получить доступ к моим данным. – user2622509