Member 14068904 Ответов: 2

Sql и C# с использованием visual studio


как сделать приложение sql winform доступным для других пользователей в локальной сети, когда у них нет адаптера SQL или исполнителя

Что я уже пробовал:

я использую visual studio C# и SQL

2 Ответов

Рейтинг:
2

David_Wimbley

Это будет довольно высокоуровневый ответ.

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

Маршрут, по которому вы должны пойти, - это установить сам sql server на выделенном поле, а затем предоставить вашему приложению доступ к этому sql server, подключившись к нему с помощью ado.net или entity framework (или любой другой из миллионов вариантов подключения к БД). Есть и другие варианты этого, например создание restful API и предоставление API вашему приложению, а также то, что ваше приложение winforms просто потребляет API и не нужно беспокоиться о тонне различных клиентских машин, имеющих подключение к самому sql server.

В любом случае это избавит вас от необходимости устанавливать зависимости подключения к БД на каждой клиентской машине, на которой будет запущено ваше приложение winforms.

Я бы рекомендовал хороший поиск в google в качестве первого места для начала.

подключение к sql server из winforms - поиск Google[^]

Первый результат выглядит многообещающе

.net - подключение к базе данных SQL Server C#-WinForms - переполнение стека[^]

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


Рейтинг:
2

Afzaal Ahmad Zeeshan

Вопрос за вопросом, Вы доверяете всем в локальной сети Или им просто разрешено читать информацию и не делать других вещей? Один простой способ сделать это-предоставить пользователям интерфейс, подобный отчету, и попросить их ввести свои собственные учетные данные—учетные записи пользователей, созданные внутри базы данных,—и управлять тем, к каким областям у них есть доступ. Несколько движков баз данных обеспечивают это, и все же это пока самый простой способ сделать это только с помощью движка базы данных.

Еще один способ сделать это-написать веб-интерфейс, например ASP.NET основанный веб-API (раз уж вы заговорили о WinForms), где они могут использовать внутренние службы для базы данных. Основными функциями, которые предоставляет веб-интерфейс, являются,


  1. Быстрый и легкий доступ через любой веб-браузер.
  2. Управляйте тем, кто может получить доступ к ресурсам, и кэширование, файлы cookie и JWT могут быть легко применены.
  3. Никто не имеет прямого доступа к базе данных—самое главное!

В базе данных основная проблема заключается в том, и особенно в тех базах данных, которые доступны в сети, что любой может получить доступ к таблицам напрямую. Что является наихудшим способом предоставления услуг, зависящих от базы данных. Только представьте, что человек может выполнить на базе данных. Я оставлю тебя с этим.

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

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

ASP.NET веб-API | The ASP.NET сайт[^]