На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> MSSQL как секьюрный telnet/ssh , Или нестандартное использование MSSQL
    Не знаю, понадобится ли кому данный финт ушами, но вчера он меня буквально спас.
    Краткая предыстория ситуации такова. Застряли на удаленном серваке терминальные
    сессии и терминальный сервер со спокойно душой отправлял всех к чьей-то маме,
    ссылаясь на лицензионный лимит подключений. В общем, сервак стал совершенно
    неуправляеми кроме ftp и mssql никакого доступа. Причем прошло пару часов плясок
    с бубнами, пока я не вспомнил собственно про mssql и xp_cmdshell. Буквально
    минута и используя Query Analyzer в качестве консоли все было поставлено на свои
    места. Так что рекомендую всем, кому приходится рулить удаленным серваками с
    установленным MSSQL повыключать любые telnet/ssh-сервера и переходить на
    использование MSSQL в качестве секьюрной удаленной консоли :)
    Я даже для себя небольшую консольную приблуду на c# написал, если кому
    пригодиться, то я буду только рад.
    ExpandedWrap disabled
      using System;
      using System.Data;
      using System.Data.SqlClient;
       
      namespace SqlTelnet
      {
          class SqlTelnet
          {
              [STAThread]
              static void Main(string[] args)
              {
                  Console.WriteLine("SqlTelnet 1.0 by Guderian.");
                  if (args.Length != 1)
                  {
                      Console.WriteLine("Usage:\n\tSqlTelnet
      <database connection string>\nExample:\n\tSqlTelnet
      \"server=remote_ip;database=master;username;password=pass\"");
                      return;
                  }
                  
                  try
                  {
                      SqlConnection connection = new SqlConnection(args[0]);
                  SqlCommand command = connection.CreateCommand();
                  command.CommandType = CommandType.Text;
                  connection.Open();
                          try
                           {
                      string line = null;
                      while (
                                      (line = Console.ReadLine()).ToLower() != "quit")
                      {
                      command.CommandText = string.Concat  
                                                   ("xp_cmdshell \"",line,"\"");
                      Console.WriteLinecommand.CommandText);
                              try
                              {
                              SqlDataReader reader =
                                                             command.ExecuteReader();
                               try
                               {
                                while (reader.Read())
                              {
                              for (int field = 0;
                                                   field < reader.FieldCount; field++)
                                          {
                                          Console.Write(">> {0}",reader[field].ToString());
                                          }
                                          Console.WriteLine();
                          }
                  }
                      finally
                      {
                      reader.Close();
                      }
                  }
                      catch (Exception e)
                          {
                  Console.WriteLine("Exception: {0}",e.Message);
                              }
                          }
                      }
                      finally
                      {
                          connection.Close();
                      }
                  }
                  catch (Exception e)
                  {
                  Console.WriteLine("Exception : {0}",e.Message);
                  }
              }
          }
      }
    Сообщение отредактировано: Bas -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0370 ]   [ 15 queries used ]   [ Generated: 24.04.24, 01:07 GMT ]