Разрешение пользователям указывать регулярные выражения в SQL-выражении select в T-SQL - PullRequest
2 голосов
/ 25 января 2012

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

Два вопроса:

  1. Поддерживает ли SQL Server использование регулярных выражений для операторов SELECT?

  2. Безопасно ли разрешать пользователям указывать регулярные выражения для выбора базы данных?

1 Ответ

3 голосов
/ 25 января 2012
  • 1 - Нет, но вы можете использовать для этого функцию CLR, например:

    public partial class UserDefinedFunctions
    {
        [Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.None, IsDeterministic = true)]
        public static SqlBoolean RegexMatch(string Pattern, string Expression)
        {
            return new Regex(Pattern).IsMatch(Expression);
        }
    };
    
  • 2 - Безопасность полностью зависит от вашей реализации

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