Как найти нужную базу данных

Как найти базу

Базы данных телефонных номеров достаточно легко найти в интернете. В основном это относится к городским справочникам. Если же вам необходимо знать информацию о клиентах операторов сотовой связи, вам, скорее всего, понадобится прямое обращение к базе данных через работников клиентского отдела.

Как найти базу

Инструкция

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

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

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

Для получения информации об используемом операторе, регионе нахождения и регистрации абонента сотовой или городской телефонной сети воспользуйтесь ресурсом http://www.numberingplans.com/. Перейдите к разделу получения информации о номере телефона, введя его в международном формате соответственно ниже формы ввода образцу, и получите интересующие вас сведения после загрузки страницы.

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

Видео по теме

Полезный совет

Не покупайте диска с базами данных в переходах в метро и на рынках.

Источники:

  • Открытие существующей базы данных

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Система базы данных сегодня считается панацеей для поиска любой важной информации. Открытые базы данные или ОД содержат в себе исчерпывающую информацию по минимальным или расширенным вводным данным, которые задает пользователь. Все эти ОД размещены в сети интернет, и доступ к ним можно осуществлять как при простой регистрации, так и с помощью идентификации через специальные сервисы. Тема открытых баз данных является актуальной не только во всем мире, но и в каждой стране, в том числе и на территории России. Начиная с 2014 года, ежегодно в РФ публикуется не менее 5 тысяч набор данных, при этом около 800 приходится на федеральные органы власти.

В большинстве случаев, все эти данные абсолютно бесплатные. В ряде случаев, приходится заплатить за получение справки. Как правило, уплачивается государственная пошлина за саму справку, как это видно на примере получения выписки из ЕГРН, которую выдает Росреестр. Правда, на этом же сервисе можно получить сжатую информацию по данным бесплатно, из которой сведения может разобрать разве что специалист узкого профиля.

В мировом масштабе есть глобальные ОД, которые в большинстве своем представлены на английском языке. Этими данными пользуются все страны, например, из базы Интерпола.

Чтобы принимать правильные решения, нужно руководствоваться данными. Поэтому качественные источники информации — это половина успеха и в учебе, и в бизнесе. Приготовили подборку из 15 баз данных, где можно найти статистические показатели на разные темы — от ВВП до количества игроков World of Warcraft. В списке есть международные базы и ресурсы с данными по России и Москве. Узнайте, откуда брать свежую информацию, которой можно доверять. А чтобы прокачать критическое мышление, научиться оценивать релевантность данных и использовать их для решения бизнес-задач, приходите на курс Changellenge >> Польза.


Международные базы данных

Показатели развитости стран и индустрий

World Bank Open Data

Что здесь есть: статистические сведения по 570 показателям мирового развития. Временные ряды представлены с 1960 года для 208 стран. Охвачены экономические, социальные, финансовые показатели, данные по природным ресурсам и окружающей среде. Кроме того, база содержит сведения о государственном долге и его выплатах, иностранных инвестициях и финансовых потоках за период с 1970 по 2012 год для 135 стран.

Языки: английский, французский, испанский, арабский, китайский.

Форматы файлов: HTML, PDF.

Кому пригодится: стратегам, консультантам, GR-специалистам.

Лайфхаки: можно подписаться на рассылку новых исследований.

OECD.Stat

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

Языки: английский, французский.

Форматы файлов: XLS, CSV, HTML.

Кому пригодится: стратегам, консультантам, GR-специалистам.

Лайфхаки: зарегистрированному пользователю доступно больше функций. Например, история поиска, создание собственных подборок данных и возможность ими поделиться.

Eurostat

Что здесь есть: информация о странах — членах ЕС. В базе собрана общая и региональная статистика, экономические и финансовые показатели, демографические и социальные условия, данные о промышленности и торговле и многое другое.

Языки: английский, французский, немецкий.

Форматы файлов: PNG, PDF, ZIP, TSV. Файл в формате TSV можно открыть в Excel и сохранить в другом формате.

Кому пригодится: стратегам, консультантам, GR-специалистам.

Лайфхаки: есть опция отправки данных по почте. Зарегистрированные пользователи могут сохранить историю поиска.

Euromonitor International

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

Языки: английский, французский и немецкий.

Форматы файлов: PDF, XLS, PowerPoint.

Кому пригодится: маркетологам, рекламщикам, PR-специалистам, продакт-менеджерам, инвест-банкирам, стратегам и консультантам.

Лайфхаки: можно купить доступ к онлайн-версии продуктов. Есть специальные тарифы для академических подписок на базы данных. Поэтому на этот ресурс подписаны многие крупные университеты (возможно, и ваш).

Statista

Что здесь есть: необычная статистика и отчеты по 150 странам и 600 отраслям. Например, если вам интересно, сколько людей в мире играют в World of Warcraft или у какой доли населения Индии есть смартфоны, то вам сюда.

Языки: английский, французский, немецкий и испанский.

Форматы файлов: PDF, XLS, PPT, PNG.

Кому пригодится: маркетологам, рекламщикам, GR- и PR-специалистам, бренд-менеджерам, продакт-менеджерам, HR-специалистам, инвест-банкирам, стратегам и консультантам.

Лайфхаки: в бесплатном аккаунте есть доступ только к базовой статистике (без данных по отраслям), скачивать информацию можно в PDF и PNG. За 49 долларов дают полный доступ к базе и возможность скачивать файлы в формате XLS. Есть корпоративная подписка для университетов и компаний. Можно заказать собственное исследование.

Экономические и финансовые показатели

International Monetary Fund Data

Что здесь есть: данные в виде временных рядов по экономическим и финансовым показателям, обменные курсы в масштабе отдельных стран и мира в целом.

Язык: английский.

Форматы файлов: XLS, PDF, PPT, PNG.

Кому пригодится: инвест-банкирам, стратегам, консультантам, GR-специалистам.

Лайфхаки: данные доступны только после регистрации. Можно подписаться на рассылку обновлений. Есть приложение для iOS.

OPEC Data / Graphs

Что здесь есть: данные стран ОПЕК по нефтяной отрасли (цена, налоги, запасы нефти, информация о производстве и продаже).

Языки: английский, французский.

Форматы файлов: XLS, XML.

Кому пригодится: инвест-банкирам, стратегам, консультантам, GR-специалистам.

Лайфхаки: есть приложение для iOS и Android.

WTO Statistics

Что здесь есть: данные о торговых потоках, тарифах, нетарифных мерах и доле торговли в добавленной стоимости по странам мира.

Языки: английский, французский, испанский.

Форматы файлов: XLS, CSV, HTML.

Кому пригодится: стратегам, консультантам, GR-специалистам, продакт-менеджерам, маркетологам.

Лайфхаки: у базы есть два варианта поиска данных: Tariff Analysis Online и The Tariff Download Facility. Tariff Analysis Online содержит данные о тарифах на уровне «тарифной линии» — восемь или более цифр кодов Гармонизированной системы описания и кодирования товаров. Чтобы получить доступ, нужно зарегистрироваться. The Tariff Download Facility содержит упрощенные данные — о связанных, применяемых и преференциальных тарифах и статистике импорта. Данные доступны в виде шестизначных кодов Гармонизированной системы описания и кодирования товаров. Информация находится в открытом доступе.

Базы данных по РФ

Финансовые показатели

Центральный банк РФ / Статистика

Что здесь есть: официальная статистика Центробанка РФ. В базе собраны макроэкономические показатели, показатели банковского сектора, финансового рынка, национальной платежной системы и операций денежно-кредитной политики.

Язык: русский.

Форматы файлов: DOC, XLS, PDF, ARJ. Формат архива ARJ можно открыть архиваторами для ZIP.

Кому пригодится: инвест-банкирам, стратегам, консультантам, GR-специалистам.

Лайфхаки: данные до 2008–2012 годов лежат в Архиве.

Показатели развитости индустрий в стране

Национальное агентство финансовых исследований

Что здесь есть: исследования, аналитика и прогнозы по разным темам (финансы, социальное развитие, предпринимательство, IT и телеком, строительство, рынок труда и HR, бренд и реклама, PR и GR-проекты).

Язык: русский.

Форматы файлов: DOC, XLS, PDF.

Кому пригодится: маркетологам, рекламщикам, GR- и PR-специалистам, бренд-менеджерам, продакт-менеджерам, проджект-менеджерам, HR-специалистам, инвест-банкирам, стратегам и консультантам.

Лайфхаки: часть данных находится в открытом доступе. Можно бесплатно подписаться на рассылку и получать новые исследования. Есть возможность заказать свое исследование.

JSON.TV

Что здесь есть: исследования преимущественно по техническим тематикам. В базе можно найти данные об интернете вещей, цифровизации, блокчейне, искусственном интеллекте, телекоме, а также рекламе, онлайн-играх, образовании и многом другом.

Языки: русский, английский.

Форматы файлов: DOC, XLS, PDF.

Кому пригодится: Продакт-менеджерам, проджект-менеджерам, стратегам и консультантам.

Лайфхаки: после регистрации доступна краткая версия исследований. За полную нужно заплатить.

Социологические исследования

Всероссийский центр изучения общественного мнения

Что здесь есть: социологические исследования, рейтинги политиков, индексы одобрения государственных и общественных институтов и другие опросы общественного мнения.

Язык: русский.

Форматы файлов: DOC, XLS, PDF.

Кому пригодится: маркетологам, рекламщикам, GR- и PR-специалистам, бренд-менеджерам, HR-специалистам.

Лайфхаки: можно заказать свое исследование.

Аналитический центр Юрия Левады

Что здесь есть: результаты опросов общественного мнениях на разные темы начиная с 1988 года.

Языки: русский, английский.

Форматы файлов: DOC, XLS, PDF.

Кому пригодится: GR- и PR-специалистам.

Лайфхаки: можно оформить бесплатную подписку и получать новые исследования.

Фонд «Общественное мнение»

Что здесь есть: социологические и маркетинговые данные, собранные в результате опросов разных групп населения. Исследования и аналитика по темам: образ жизни, ценности, работа и дом, экономика, СМИ и интернет.

Язык: русский.

Форматы файлов: DOC, XLS, PDF.

Кому пригодится: маркетологам, рекламщикам, GR- и PR-специалистам, бренд-менеджерам, продакт-менеджерам, проджект-менеджерам, HR-специалистам.

Лайфхаки: можно заказать исследование.

База данных по Москве

Портал открытых данных правительства Москвы

Что здесь есть: информация по таким категориям, как транспорт, ЖКХ, здравоохранение, культура, общественное питание, строительство, трудоустройство и так далее.

Языки: русский, английский.

Форматы файлов: XLS, HTML, JSON. Формат JSON можно открыть в «Блокноте» или конвертировать в CSV для работы в Excel.

Кому пригодится: маркетологам, рекламщикам, GR- и PR-специалистам, продакт-менеджерам, проджект-менеджерам, HR-специалистам, стратегам и консультантам.

Лайфхаки: на главной странице есть информация об обновлениях.

Поиск открытых баз данных с помощью поисковиков

Содержание

  • 1 Поиск открытых баз данных с помощью поисковиков
    • 1.1 Поиск поддоменов
    • 1.2 Усовершенствуем скрипт для поиска баз данных
  • 2 Как защитить базы данных
  • 3 Заключение

Об­лачная база дан­ных — удоб­ная вещь: вся работа по деп­лою и нас­трой­ке сервера за вас уже сде­лана, оста­ется толь­ко поль­зовать­ся! Системных администраторв это рас­слаб­ляет нас­толь­ко, что такие открытые находяться с помощью поис­ковых систем.

Еще по теме: Как проверить сайт на уязвимости

В статье я покажу, как автоматизировать поиск незащищенных баз данных с помощью поисковиков.

Поиск открытых баз данных с помощью поисковиков

Си­деть, менять поисковые системы и переби­рать все URL вруч­ную не очень увлекательно. Слиш­ком час­то видим «error : Permission denied». Зна­чит, пора переходить к автоматизации!


Вся информация предоставлена исключительно в ознакомительных целях. Ни автор, ни редакция сайта spy-soft.net не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

Прог­рамми­ровать, прав­да, не придется, потому что некоторые такие как Францеска Эрера — это уже сде­лали до нас. Возь­мем, к при­меру интересный скрипт, который сам под­бира­ет URL и ищет уяз­вимые базы дан­ных.

Скачиваем его и уста­нав­лива­ем зависи­мос­ти:

git clone https://github.com/Turr0n/firebase.git

cd firebase

pip install r requirements.txt

После этого запус­каем:

python3 firebase.py p 4  c 150 dnsdumpster

Клю­чи:

  • p — ука­зыва­ет количес­тво потоков (по умол­чанию 1, мак­симум 4);
  • dnsdumpster — генери­рует URL самос­тоятель­но;
  • с — какое количес­тво доменов генери­ровать.

Да, скрипт уме­ет генери­ровать ссыл­ки самос­тоятель­но. Точ­нее, дела­ет это не сам, а обра­щает­ся за помощью к ути­лите DNSdumpster.

Ре­зуль­тат работы скрип­та по поиску базы данных

Ре­зуль­тат работы скрип­та

По резуль­тату вид­но, что из най­ден­ных баз:

  • 37 урлов «битые» или боль­ше не сущес­тву­ют;
  • 171 база име­ет аутен­тифика­цию при обра­щении к дан­ным и защище­на;
  • од­на база с подоз­рени­ем на уяз­вимость;
  • 25 баз не защище­ны или уяз­вимы.

Мож­но скор­мить скрип­ту и свой спи­сок. В нем дол­жны быть толь­ко под­домены треть­его уров­ня. Нап­ример, вы дела­ете вот такой вход­ной спи­сок:

Тог­да скрипт про­верит вот эти URL:

https://xxx.firebaseio.com

https://yyy.firebaseio.com

https://zzz.firebaseio.com

Поиск поддоменов

Что­бы получить наибо­лее эффектив­ный спи­сок, мож­но вос­поль­зовать­ся скрип­том sublist3r, который исполь­зует раз­ные тех­ники поис­ка и OSINT, что­бы подоб­рать наибо­лее прав­доподоб­ные вари­анты.

За­пус­каем:

python3 sublist3r.py d firebaseio.com

И на выходе получа­ем око­ло 650 доменов. Работа­ет очень быс­тро.

По­иск доменов прог­раммой sublist3r

По­иск доменов прог­раммой sublist3r

Еще одна ути­лита для генера­ции доменов — subbrute. Она выдала мне в рай­оне 100 под­доменов, но работа­ла 30–40 минут.

По­иск под­доменов прог­раммой subbrute

По­иск под­доменов прог­раммой subbrute

Censys-subdomain-finder, на который я воз­лагал боль­шие надеж­ды, выдал все­го семь доменов. К сло­ву, и сам сер­вис выдал нем­ного — 25 урлов.

Все перечис­ленные ути­литы не вхо­дят в сос­тав дис­три­бути­ва Kali Linux, их приш­лось качать отдель­но.

Из онлай­новых сер­висов мож­но вос­поль­зовать­ся nmmapper, DNSdumpster, Pentest-Tools.

Ес­ли все еще мало, мож­но задей­ство­вать зна­ния о том, что нас­трой­ки интегра­ции про­исхо­дят в фай­ле:

И поис­кать в гите зап­росом:

site:github.com googleservices.json

Этот вари­ант идет враз­рез со сло­вом «авто­мати­зация», зато мож­но докопать­ся до уни­каль­ных баз.

Усовершенствуем скрипт для поиска баз данных

Те­перь мы воору­жены доб­ротным набором урлов и зна­ем, что какие‑то из них могут быть уяз­вимы. Даже можем запус­тить скрипт и про­верить количес­тво невер­но нас­тро­енных баз из нашего спис­ка. Но цель в таких слу­чаях — не соб­рать ста­тис­тику, а получить уяз­вимые цели. Поэто­му откро­ем код скрип­та и слег­ка поп­равим.

Пос­мотри вот на этот кусок кода:

urls = set()

with open(args_.list, ‘r’) as f:

  [urls.add(‘https://{}.firebaseio.com/.json’.format(line.rstrip())) for line in f]

Из него понят­но, как фор­миру­ется пол­ный адрес. А в кон­це фор­миру­ется отчет:

print(‘404 DBs:                 {}’.format(l[‘-2’]))

print(‘Secure DBs:              {}’.format(l[‘-1’]))

print(‘Possible vulnerable DBs: {}’.format(l[‘0’]))

print(‘Vulnerable DBs:          {}’.format(l[‘1’]))

Ку­сок кода с про­вер­кой я при­водить не буду. Там нет ничего любопыт­ного, мне нуж­но было най­ти само прис­воение. И вот оно:

with open(args_.fn, ‘w’) as f:

  json.dump(loot, f)

l = {‘1’:0, ‘0’:0, ‘-1’:0, ‘-2’:0}

for result in loot:

  l[str(result[‘status’])] += 1

Вот в этом мес­те я соз­даю свой мас­сив по ста­тусу 1. Так как я еще не понимаю, чем его запол­нять, записы­ваю все под­ряд. Получи­лось при­мер­но сле­дующее:

l = {‘1’:0, ‘0’:0, ‘-1’:0, ‘-2’:0}

Vulnerable = []

for result in loot:

  l[str(result[‘status’])] += 1

  if str(result[‘status’]) == ‘1’:

    Vulnerable.append(result)

И в кон­це добав­ляю вывод резуль­тата в кон­соль:

print(‘404 DBs:                 {}’.format(l[‘-2’]))

print(‘Secure DBs:              {}’.format(l[‘-1’]))

print(‘Possible vulnerable DBs: {}’.format(l[‘0’]))

print(‘Vulnerable DBs:          {}’.format(l[‘1’]))

print(Vulnerable)

Пос­ле запус­ка вижу такую кар­тину.

Поиск открытых баз данных с помощью поисковиков

Ра­бота прог­раммы пос­ле вме­шатель­ства

Мне высыпа­лось все, что хра­нилось в базах. Зато теперь я знаю, что записы­вать в Vulnerable. Пра­вим код, как надо:

l = {‘1’:0, ‘0’:0, ‘-1’:0, ‘-2’:0}

Vulnerable = []

for result in loot:

  l[str(result[‘status’])] += 1

  if str(result[‘status’]) == ‘1’:

    Vulnerable.append(result[‘url’])

...

print(‘404 DBs:                 {}’.format(l[‘-2’]))

print(‘Secure DBs:              {}’.format(l[‘-1’]))

print(‘Possible vulnerable DBs: {}’.format(l[‘0’]))

print(‘Vulnerable DBs:          {}’.format(l[‘1’]))

print(Vulnerable)

На этот раз при запус­ке видим то, что было нуж­но, — спи­сок уяз­вимых баз.

Ра­бота усовершенствованного скрип­та для поиска базы данных

Ра­бота усовершенствованного скрип­та для поиска базы данных

Осо­бен­но меня заин­тересо­вала вот эта ссыл­ка:

https://covid-19-tracker-e76ca.firebaseio.com/.json

В Малай­зии так спе­шили отсле­живать переме­щения боль­ных ковидом, что не пос­тавили пароль на базу дан­ных с их коор­дината­ми…

Как защитить базы данных

Наз­вать эту проб­лему уяз­вимостью — некото­рое пре­уве­личе­ние. Все сво­дит­ся к тому, что Google поз­воля­ет открыть дос­туп к содер­жимому базы всем неав­торизо­ван­ным поль­зовате­лям, и некото­рые раз­работ­чики так и пос­тупа­ют.

По­это­му, что­бы защитить­ся, дос­таточ­но про­писать полити­ки безопас­ности Firebase. Google пред­лага­ет при­дер­живать­ся сле­дующих пра­вил.

Да­же во вре­мя раз­работ­ки (на тес­те и на stage) не сто­ит откры­вать дос­туп ко всем дан­ным в Firebase неав­торизо­ван­ным поль­зовате­лям, но есть воз­можность открыть их при авто­риза­ции:

service cloud.firestore {

  match /databases/{database}/documents {

    match /{document=**} {

      allow read, write: if request.auth != null;

    }

  }

}

Это пра­вило необ­ходимо, ког­да нес­коль­ким поль­зовате­лям нуж­но работать с одним кон­тентом.

Сле­дующее пра­вило дает дос­туп к дан­ным толь­ко вла­дель­цам этих дан­ных. Осталь­ные поль­зовате­ли не смо­гут их видеть или обра­баты­вать:

service cloud.firestore {

  match /databases/{database}/documents {

    // Allow only authenticated content owners access

    match /some_collection/{userId}/{documents=**} {

      allow read, write: if request.auth != null && request.auth.uid == userId

    }

  }

}

И третье пра­вило уста­нав­лива­ет дос­туп на чте­ние некото­рых дан­ных некото­рым поль­зовате­лям, но редак­тирова­ние — толь­ко его вла­дель­цу:

service cloud.firestore {

  match /databases/{database}/documents {

    // For attribute-based access control, Check a boolean `admin` attribute

    allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true;

    allow read: true;

    // Alterntatively, for role-based access, assign specific roles to users

    match /some_collection/{document} {

      allow read: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == «Reader»

      allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == «Writer»

    }

  }

}

Бо­лее под­робные све­дения о бе­зопас­ности аутен­тифика­ции и кон­тро­ле дос­тупа мож­но най­ти в докумен­тации Firebase.

Заключение

Итак, мы рас­смот­рели, как про­исхо­дит утеч­ка дан­ных, разоб­рались с поис­ком уяз­вимых URL, научи­лись авто­мати­зиро­вать про­цесс и узна­ли, как избе­жать этой проб­лемы.

В докумен­тации по безопас­ности Firebase при­веде­ны и сами пра­вила, и раз­ные спо­собы защитить дан­ные. Не сто­ит ими пре­неб­регать, перек­ладывая ответс­твен­ность на какие‑нибудь гей­ты или прок­си‑сер­веры. Адрес базы может быть обна­ружен.

Еще по теме: Что такое Google Dorks?

Время на прочтение
5 мин

Количество просмотров 61K

Описание общей потребности в поиске данных и объектов в базе данных

Поиск данных, а также хранимых процедур, таблиц и других объектов в базе данных является достаточно актуальным вопросом в том числе и для C#-разработчиков, а также и для .NET-разработки в целом.

Достаточно часто может возникнуть ситуация, при которой нужно найти:

  1. объект базы данных (таблицу, представление, хранимую процедуру, функцию и т д)
  2. данные (значение и в какой таблице располагается)
  3. фрагмент кода в определениях объектов базы данных

Существует множество готовых решений как платных, так и бесплатных.

Сначала рассмотрим как можно осуществлять поиск данных и объектов в базе данных с помощью встроенных средств самой СУБД, а затем рассмотрим как это сделать с помощью бесплатной утилиты dbForge Search.

Поиск с помощью встроенных средств самой СУБД

Определить есть ли таблица Employee в базе данных можно с помощью следующего скрипта:

Поиск таблицы по имени

select [object_id], [schema_id],
	   schema_name([schema_id]) as [schema_name], 
	   [name], 
	   [type], 
	   [type_desc], 
	   [create_date], 
	   [modify_date]
from sys.all_objects
where [name]='Employee';

Результат может быть примерно такой:

Здесь выводятся:

  1. идентификаторы объекта и схемы, где располагается объект
  2. название этой схемы и название этого объекта
  3. тип объекта и описание этого типа объекта
  4. даты и время создания и последней модификации объекта

Чтобы найти все вхождения строки “Project”, то можно использовать следующий скрипт:

Поиск всех объектов по подстроке в имени

select [object_id], [schema_id],
	   schema_name([schema_id]) as [schema_name], 
	   [name], 
	   [type], 
	   [type_desc], 
	   [create_date], 
	   [modify_date]
from sys.all_objects
where [name] like '%Project%';

Результат может быть примерно такой:

Как видно из результата, здесь подстроку “Project” содержат не только две таблицы Project и ProjectSkill, но и также некоторые первичные и внешние ключи.

Чтобы понять кому именно принадлежат данные ключи, добавим в вывод поле parent_object_id и его имя и схему, в которой он располагается следующим образом:

Поиск всех объектов по подстроке в имени с выводом родительских объектов

select ao.[object_id], ao.[schema_id],
	   schema_name(ao.[schema_id]) as [schema_name],
	   ao.parent_object_id,
	   p.[schema_id] as [parent_schema_id],
	   schema_name(p.[schema_id]) as [parent_schema_name],
	   p.[name] as [parent_name],
	   ao.[name], 
	   ao.[type], 
	   ao.[type_desc], 
	   ao.[create_date], 
	   ao.[modify_date]
from sys.all_objects as ao
left outer join sys.all_objects as p on ao.[parent_object_id]=p.[object_id]
where ao.[name] like '%Project%';

Результатом будет вывод таблицы с детальной информацией о родительских объектах, т е где определены первичные и внешние ключи:

В запросах используются следующие системные объекты:

  • таблица sys.all_objects
  • скалярная функция schema_name

Итак, разобрали как найти объекты в базе данных с помощью встроенных средств самой СУБД.
Теперь покажем как найти данные в базе данных на примере поиска строк.

Чтобы найти строковое значение по всем таблицам базы данных, можно воспользоваться следующим решением. Упростим данное решение и покажем как можно найти например значение “Ramiro” с помощью следующего скрипта:

Поиск строковых значений по подстроке во всех таблицах базы данных

set nocount on
declare @name varchar(128), @substr nvarchar(4000), @column varchar(128)
set @substr = '%Ramiro%'

declare @sql nvarchar(max);

create table #rslt 
(table_name varchar(128), field_name varchar(128), [value] nvarchar(max))

declare s cursor for select table_name as table_name from information_schema.tables where table_type = 'BASE TABLE' order by table_name
open s
fetch next from s into @name
while @@fetch_status = 0
begin
 declare c cursor for 
	select quotename(column_name) as column_name from information_schema.columns 
	  where data_type in ('text', 'ntext', 'varchar', 'char', 'nvarchar', 'char', 'sysname', 'int', 'tinyint') and table_name  = @name
 set @name = quotename(@name)
 open c
 fetch next from c into @column
 while @@fetch_status = 0
 begin
   --print 'Processing table - ' + @name + ', column - ' + @column

   set @sql='insert into #rslt select ''' + @name + ''' as Table_name, ''' + @column + ''', cast(' + @column + 
	' as nvarchar(max)) from' + @name + ' where cast(' + @column + ' as nvarchar(max)) like ''' + @substr + '''';

	print @sql;

   exec(@sql);

   fetch next from c into @column;
 end
 close c
 deallocate c
 fetch next from s into @name
end
select table_name as [Table Name], field_name as [Field Name], count(*) as [Found Mathes] from #rslt
group by table_name, field_name
order by table_name, field_name

drop table #rslt
close s
deallocate s

Результат выполнения может быть таким:

Здесь выводятся имена таблиц и в каких столбцах хранится значение, содержащие подстроку “Ramiro”. А также количество найденных входов данной подстроки для найденной пары таблица-колонка.

Чтобы найти объекты, в определениях которых есть заданный фрагмент кода, можно воспользоваться следующими системными представлениями:

  1. sys.sql_modules
  2. sys.all_sql_modules
  3. sys.syscomments

Например, используя последнее представление, можно с помощью следующего скрипта найти все объекты, в определениях которых встречается заданный фрагмент кода:

Поиск фрагмента кода в определениях объектов базы данных

select obj.[object_id],
	   obj.[name],
	   obj.[type_desc],
	   sc.[text]
from sys.syscomments as sc
inner join sys.objects obj on sc.[id]=obj.[object_id]
where sc.[text] like '%code snippet%';

Здесь будет выведен идентификатор, название, описание и полное определение объекта.

Поиск с помощью бесплатной утилиты dbForge Search

Однако, более удобно поиск производить с помощью готовых хороших инструментов. Одним из таких инструментов является dbForge Search.

Для вызова этой утилиты в окне SSMS нажмите на кнопку .

Появится следующее окно поиска:

Обратите внимание на верхнюю панель (слева направо):

  1. можно переключать режим поиска (ищем DDL (объекты) или данные)
  2. непосредственно что ищем (какую подстроку)
  3. учитывать ли регистр, искать точное соответствие слову, искать вхождения:

  4. группировать результат по типам объектов — кнопка
  5. выбрать нужные типы объектов для поиска:

  6. также можно задать несколько баз данных для поиска и выбрать экземпляр MS SQL Server

Это все в режиме поиска объектов, т е когда включен DDL:

В режиме поиска данных изменится только выбор типов объектов:

А именно будут доступны для выбора только таблицы, где и хранятся собственно сами данные:

Теперь как и раньше найдем все вхождения подстроки “Project” в названиях объектов:

Как видно, был выбран режим поиска по DDL-объектам, заполнено что ищем-строка “Project”, остальное все было по умолчанию.

При выделении найденного объекта внизу отображается код определения данного объекта или всего его родительского объекта.

Также можно переместить навигацию на найденный объект, щелкнув на кнопку :

Можно также сгруппировать найденные объекты по их типу:

Обратите внимание, что выводятся даже те таблицы, в которых есть поля, в именах которых содержится подстрока “Project”. Однако, напомним, что режим поиска можно менять: искать полное соответствие/частичное/учитывать регистр или нет.

Теперь найдем значение “Ramiro” по всем таблицам:

Обратите внимание, что внизу отображаются все строки, в которых содержится подстрока “Ramiro” выбранной таблицы Employee.

Также можно переместить навигацию к найденному объекту, нажав как и ранее на кнопку :

Таким образом мы можем искать нужные объекты и данные в базе данных.

Заключение

Были рассмотрены способы поиска как самих данных, так и объектов в базе данных как с помощью встроенных средств самой СУБД MS SQL Server, так и с помощью бесплатной утилиты dbForge Search.

Также от компании Devart есть и ряд других бесплатных готовых решений, полный список которых можно посмотреть здесь.

Источники

  • Search_Script.sql
  • SSMS
  • dbForge Search
  • Документация по Microsoft SQL
  • Бесплатные решения от компании Devart

Понравилась статья? Поделить с друзьями:
  • Bluestacks тормозит на компе как исправить
  • Как найти свое устройство эпл
  • Как найти площадь треугольника если знаем стороны
  • Как найти количество водяных паров
  • Как найти частную производную в точке онлайн