• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Как извлечь нужные колонки из sql?

Raskolnikov

Green Team
30.07.2017
67
21
BIT
0
Собственно есть файл с расширением sql. Как вытащить оттуда нужные колонки(login и pass) и привести их к виду login : pass? Может софт есть какой или скрипт?
 

petor

Green Team
26.04.2019
19
13
BIT
0
Собственно есть файл с расширением sql. Как вытащить оттуда нужные колонки(login и pass) и привести их к виду login : pass? Может софт есть какой или скрипт?
А вы открывали файл?
Из чего вы сделали вывод, что там есть "нужные колонки(login и pass)"?

Цитата:
"Файл SQL содержит команды на языке SQL (Structured Query Language). Это язык структурированных запросов, предназначенный для работы с данными в системе реляционных баз данных, например, MySQL."

Ну и поисковик в помощь:
 

Raskolnikov

Green Team
30.07.2017
67
21
BIT
0
А вы открывали файл?
Из чего вы сделали вывод, что там есть "нужные колонки(login и pass)"?

Цитата:
"Файл SQL содержит команды на языке SQL (Structured Query Language). Это язык структурированных запросов, предназначенный для работы с данными в системе реляционных баз данных, например, MySQL."

Ну и поисковик в помощь:

Вопрос состоит в другом, с расширением sql я прекрасно знаком ) Открыть его можно любым текстовым редактором, можно импортировать в бд и оттуда уже вытащить нужные колонки.
Без импорта в бд можно как-то вытащить?
 

f22

Codeby Academy
Gold Team
05.05.2019
1 935
226
BIT
1 740
Вопрос состоит в другом, с расширением sql я прекрасно знаком ) Открыть его можно любым текстовым редактором, можно импортировать в бд и оттуда уже вытащить нужные колонки.
Без импорта в бд можно как-то вытащить?
Твой вопрос похож на Как можно увидеть картинку из фотографии без просмотрщика фотографий? ))
Конечно, ответ Нет. Для того, чтобы извлечь какие-то данные из этого файла тебе нужна программа.
Вариантов несколько:
1. Писать самому, например, на Python
Python:
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
# Download it at http://sourceforge.net/projects/mysql-python/?source=dlp
# Tutorials: http://mysql-python.sourceforge.net/MySQLdb.html
#            http://zetcode.com/db/mysqlpython/
import MySQLdb as mdb
 
import datetime, time
 
def run_sql_file(filename, connection):
    '''
    The function takes a filename and a connection as input
    and will run the SQL query on the given connection 
    '''
    start = time.time()
    
    file = open(filename, 'r')
    sql = s = " ".join(file.readlines())
    print "Start executing: " + filename + " at " + str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) + "\n" + sql
    cursor = connection.cursor()
    cursor.execute(sql)   
    connection.commit()
    
    end = time.time()
    print "Time elapsed to run the query:"
    print str((end - start)*1000) + ' ms'
    
    
 
def main():   
    connection = mdb.connect('127.0.0.1', 'root', 'password', 'database_name')
    run_sql_file("my_query_file.sql", connection)   
    connection.close()
    
if __name__ == "__main__":
    main()


2. Воспользоваться тем, что уже написано
К примеру

84ac75063c35[1].jpg
 

f22

Codeby Academy
Gold Team
05.05.2019
1 935
226
BIT
1 740
Вопрос состоит в другом, с расширением sql я прекрасно знаком ) Открыть его можно любым текстовым редактором, можно импортировать в бд и оттуда уже вытащить нужные колонки.
Без импорта в бд можно как-то вытащить?
Я видимо тебе не очень правильно понял.
Смотри, если у тебя есть только файл запросов, ты можешь посмотреть в нём саму структуру запроса к БД.
В этом запросе обычно указывается адрес БД, имя пользователя, пароль, название нужной БД и таблица в этой БД

из Linux в командной строке ты можешь выполнить например такой код
mysql -u [B]ПОЛЬЗОВАТЕЛЬ[/B] -p[B]ПАРОЛЬ[/B] -h ip -e "show databases"
Этот код подключит тебя к БД, которая располагается по IP адресу ip и вернет тебе список баз данных
Соответственно тебе нужно знать имя пользователя, пароль и IP.


А после уже в теле запроса ты можешь указывать из какой базы данных взять таблицу,
Третьим заходом из нужной таблицы запросом "DESCRIBE table" ты получаешь все поля
Ну и четвертым " SELECT * FROM table" получаешь все данные всех полей.

Может быть есть способ проще, но принцип именно такой.

Вот ещё здесь посмотри

и здесь
 

InetTester

Green Team
21.10.2018
308
43
BIT
5
Насколько я понял, у него уже есть дамп который он по какой то причине не хочет или не может импортировать (возможно не полный или поврежденный), а хочет просто найти парсер который вытащит от туда все логины и пароли в формате
login : pass
Скорее всего придется писать только самому.
 

Iskus

Green Team
13.11.2017
287
468
BIT
0
Конечно можно! Какие вопросы, проще пареной репы! Пишешь парсер, который на вход получает этот файл, в дампе данные хранятся в виде запросов на создание таблиц и мультиинсертов. Всё, что тебе для этого понадобится есть . Всё просто. Регулярки - TRUE!
 

Raskolnikov

Green Team
30.07.2017
67
21
BIT
0
Благодарю за ответы, решил задачу с помощью питона

Iskus + за полезную ссылку)
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!