Запускать операторы SQL из приложения ASP.net - PullRequest
0 голосов
/ 08 декабря 2009

Мне нужно запустить SQL-операторы из самого приложения. то есть пользователь может зайти в приложение asp.net, получить окно и запустить оттуда операторы sql

Я уже делаю что-то подобное Можно ли откатить динамический SQL в SQL Server / TSQL

То есть динамический sql

есть ли лучший способ сделать это

Ответы [ 3 ]

2 голосов
/ 08 декабря 2009

Динамический SQL, безусловно, самый простой способ сделать это. Альтернативой является параметризованный SQL, но для этого потребуется, чтобы ваши пользователи определяли и устанавливали параметры отдельно от T-SQL.

Вы можете просто отправить строку T-SQL на SQL Server, используя объект SqlCommand; нет никакой реальной выгоды в том, чтобы обернуть его в EXEC или что-либо еще, как в ссылке, которую вы предоставили. Вы можете выполнять обработку исключений на стороне .NET.

Кроме того, если вы хотите поддерживать пакет команд, имейте в виду, что SqlClient и его друзья не понимают «GO», что также не является настоящей командой T-SQL - вам нужно будет проанализировать ввод и разбить это в партии самостоятельно.

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

2 голосов
/ 08 декабря 2009

НЕ ДЕЛАЙТЕ ЭТОГО. Что если пользователь введет в sp_msforeachtable 'усеченную таблицу?' ...?

0 голосов
/ 08 декабря 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...