По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В том случае, если на вашем предприятии организован мощный отдел продаж и ежедневно вы обрабатываете большое количество вызовов, то база данных, в которую складываются записи CDR (Call Detail Record) начинается переполняться и наращивать объем. Со временем, это может негативно сказаться на производительности сервера, приводя к замедлению обработки процессов резервного копирования и обновления системы. Если вы не хотите удалять старые записи в базе данных, то элегантным решением данной проблемы будет перемещение базы данных для CDR на отдельный сервер. О том, как это осуществить мы расскажем в этой статье. Рабочие условия Предположим, что в нашем корпоративном контуре имеются следующие виртуальные машины: 192.168.1.2 - сервер IP – АТС Asterisk с графической оболочкой FreePBX; 192.168.1.3 - сервер, на котором развернута база данных MySQL; Поддерживаемые типы баз данных это MySQL (MariaDB) и PostgreSQL; Предварительно, настройте разрешения на подключения с IP – адреса АТС (файл pg_hba.conf в PostgreSQL и командно через консоль в случае MySQL) и создайте пользователя freepbxuser. Произведем тест на связность. Дадим команду с консоли сервера Asterisk: mysql --host=192.168.1.3 -ufreepbxuser -p asteriskcdrdb Введите пароль для подключения. Если все ОК, переходим к настройке FreePBX. Настройка FreePBX Переходим в раздел Settings → Advanced Settings. Убеждаемся, что параметры Display Readonly Settings и Override Readonly Settings установлены в значение Yes. Remote CDR DB Host - IP – адрес хоста, на котором развернута база данных. В нашем примере это 192.168.1.3; Remote CDR DB Name - имя базы данных. Укажите здесь asteriskcdrdb; Remote CDR DB Password - пароль для подключения к MySQL от пользователя freepbxuser; Remote CDR DB Port - порт, на котором база данных на удаленном хосте слушает запросы; Remote CDR DB Table - таблица, внутри БД, с которой мы будет работать. Указываем здесь cdr; Remote CDR DB Type - тип базы данных. Мы указываем MySQL; Remote CDR DB User - имя пользователя, под которым мы производим подключение; Более подробно почитать про базу данных asteriskcdrdb вы можете почитать в этой статье; Сохраняем изменения и переходим в консоль сервер АТС. Останавливаем FreePBX: fwconsole stop Редактируем файл odbc.ini. Там, в параметре server, нам необходимо указать IP – адрес хоста, на котором у нас развернута внешняя БД: vim /etc/odbc.ini [MySQL-asteriskcdrdb] Description=MySQL connection to 'asteriskcdrdb' database driver=MySQL server=192.168.1.3 //замену производим вот тут database=asteriskcdrdb Port=3306 Socket=/var/lib/mysql/mysql.sock option=3 Charset=utf8 Сохраняем изменения в файле и запускаем FreePBX: fwconsole start Теперь остается только проверить функционал. Сделайте пару тестовых звонков и проверьте их наличие в БД на удаленном хосте.
img
Представьте себе, что рядом с вами в организации есть сетевая розетка и все, что туда подключается, автоматически получает туда доступ. Любые устройства - даже если они являются "шпионскими" или не авторизованными. Вы конечно скажете - но есть же простой, как тапок, протокол под названием Port Security! Верно, но как он работает? Вы либо указываете MAC-адрес, который может подключиться к порту и получить доступ в сеть, либо указываете какое-то количество таких MAC адресов, которые будут динамически опознаны коммутатором или смешиваете два этих способа. Но что если вы находитесь в публичной зоне, например там, куда вы приглашаете клиентов, или, к примеру вы находитесь на некой веранде, откуда зачастую можно работать. Там внедрён Port Security, все нормально. Но вдруг ваш ноутбук кто-то умудрился ловко спереть и что тогда? У кого-то постороннего появится доступ в вашу сеть, так как доступ по его MAC-адресу разрешен. Тут-то и вступает в дело 802.1X - он позволяет проводить аутентификацию не устройства, но пользователя. Таким образом, если устройство будет украдено, злоумышленники все равно не получат доступ в сеть. Логичным вопросом будет "Как же я обеспечу гостей доступом в сеть без предоставления им полного доступа"? Ответ - легко, и вариантов десятки: гостевая учетка и гостевой VLAN, специальный портал саморегистрации для гостей и так далее и тому подобное. Также некоторые скажут - ну конечно, у меня в компании доступ к беспроводной сети так и организован, через синхронизацию с AD и по учетным записям пользователей. Но как это работает в случае проводного доступа? Сразу отвечу, что 802.1X используется как в беспроводной сети, так и в проводной. Подробнее о принципе действия, его компонентах я расскажу ниже. Из чего состоит 802.1X У 802.1X есть три основных компонента - суппликант, аутентификатор и сервер аутентификации. Суппликант - это ваше оконечное устройство и пользователь с определенным ПО (здесь нет смысла углубляться в различные виды суппликантов). Аутентификатор - это коммутатор или точка доступа (первое сетевое устройство уровня доступа, на который пришел трафик с суппликанта. И, наконец, сервером аутентификации является специальное ПО или устройство, принадлежащее к классу NAC - Network Access Control, или средствам контроля сетевого доступа. Конкретный класс решений для реализации 802.1X называется RADIUS-сервером. Итак, порядок подключения следующий: вы пытаетесь получить доступ в сеть и аутентификатор говорит - предъявите, пожалуйста документы. Ваше устройство (суппликант) предоставляет нужную информацию - логин и пароль, сертификат, обе этих сущности вместе и прочие. Далее аутентификатор отправляет полученную информацию на сервер аутентификации и ждёт ответа. Далее, в базовом варианте, сервер аутентификации отправит обратно на аутентификатор разрешение и после этого аутентификатор разрешение суппликанту. До этого момента почти никакой трафик разрешен не будет! Важно понимать, что в сторону аутентификатора уходит фрейм с определенным регистром (для этого и нужен суппликант), а аутентификатор энкапсулирует отправляет полученную информацию от суппликанта в сторону сервера аутентификации как IP – пакет (чтобы его можно было маршрутизировать). Протоколы в технологии 802.1X Давайте теперь подробнее поговорим о протоколах в этой технологии – так как 802.1X являет собой неикий собирательный термин. Основных протоколов 2 – EAPoL (Extensible Authentication Protocol over LAN) и RADIUS (Remote Authentication Dial-In User Service). Есть очень простые и не очень безопасные формы EAP и очень надежные, но крайне сложные в настройке. В простейшем виде будет необходим только логин и пароль. В более сложных – сертификат, токен и прочее. Есть правило – чем проще настроить EAP – тем он менее взломостойкий и наоборот :) В наше время одним из популярных и очень умных RADIUS – серверов является Cisco ISE. Он позволяет авторизовывать пользователей в зависимости от их контекста: Что за устройство? Кто? Где? Когда? Было ли устройство скомпрометировано ранее? и автоматически профилировать каждое подключенное устройство для того, чтобы понимать какие устройства есть у вас в сети и в каком состоянии они находятся – многие даже не подозревают о том, как много у них в организации подключено неизвестных устройств (при количестве пользователей более 1000). Ниже на диаграмме можно увидеть весь процесс установления соединения при использовании 802.1X:
img
Потренируйтесь в ответах на популярные вопросы по SQL на собеседованиях. В данной статье приведен список типовых вопросов по SQL, с которыми можно столкнуться на настоящем собеседовании, и даны ответы. Чтобы получить максимум из прочитанного, постарайтесь сначала отвечать на вопросы самостоятельно. Удачи! 1. Что такое SQL? SQL расшифровывается как Structured Query Language – язык структурированных запросов. Это язык программирования для взаимодействия с данными, которые хранятся в системе управления реляционными базами данных. Синтаксис SQL схож с английским языком, поэтому его легко читать, писать и интерпретировать. Он позволяет вам писать запросы, определяющие подмножество данных, которые вы ищите. Эти запросы можно сохранять, уточнять, обмениваться ими и запускать в различных базах данных. 2. Что такое база данных? База данных (БД) – это набор данных, хранимых на компьютере. При этом сами данные структурированы таким образом, что их можно было легко получить. 3. Что такое реляционная база данных? Реляционная база данных – это разновидность базы данных. В ней используется структура, которая позволяет нам идентифицировать и обращаться к данным в привязке к другим частям данных из БД. Данные в реляционной БД часто организованы в виде таблиц. 4. Что такое РСУБД? Система управления реляционными базами данных (РСУБД) – это программа, позволяющая вам создавать, обновлять и администрировать реляционную базу данных. Для доступа к базам данных большинство РСУБД использует язык SQL. Самой популярной РСУБД считается MySQL. К другим системам относятся PostgreSQL, Oracle DB, SQL Server и SQLite. 5. Что такое таблица? Таблица – это набор данных, распределенных по строкам и столбцам. Иногда их называют «связями». В таблицах могут быть сотни, тысячи и иногда даже миллионы строк данных. 6. Что такое строка и столбец в таблице? Строка – это одна запись данных в таблице. Столбец – это набор значений данных определенного типа. 7. Что такое тип данных? Тип данных – это атрибут, который определяет тип данных в столбце. В каждом столбце БД есть тип данных. Несколько часто используемых типов данных: INTEGER, TEXT, DATE, REAL. 8. Что такое первичный и внешний ключ? Первичный ключ (primary key) – это столбец, который однозначно определяет каждую строку в таблице. Первичные ключи должны соответствовать следующим требованиям: ни одно значение не может быть пустым (NULL), каждое значение должно быть уникальным и в таблице не может быть более одного столбца с первичным ключом. Например, в таблице customers первичным ключом будет customer_id. Внешний ключ (foreign key) – это первичный ключ для одной таблицы, который присутствует и в другой таблице. Например, есть дополнительная таблица orders. В каждом заказе может храниться информация о клиенте. Поэтому внешним ключом будет столбец customer_id. 9. В чем отличие ALTER от UPDATE? Оператор ALTER используется для добавления нового столбца в таблицу. Он изменяет структуру таблицы. Оператор UPDATE используется для редактирования строки в таблице. Он изменяет существующие записи в таблице. 10. Что такое запрос? Запрос (query) – это оператор SQL для получения информации, хранимой в базе данных. Запросы позволяют нам «общаться» с базой данных, задавая вопросы и возвращая результирующий набор подходящих данных. 11. Что такое подзапрос? Подзапрос (subquery) – это внутренний запрос, вложенный во внешний. Запросы можно вложить через операторы SELECT, INSERT, UPDATE или DELETE. Если есть подзапрос, то он будет выполняться до запуска внешнего оператора. 12. Что такое ограничения? Ограничения (constraints) – это набор правил, через которых базе данных сообщается об ограничении типа данных, хранимых в столбцах. Они предписывают базе данных отклонять введенные данные, если они не соответствуют ограничению. Ограничения добавляют информацию о том, как может использоваться столбец, и вызываются после типа данных для столбца. Несколько примеров ограничений: PRIMARY KEY: однозначно определяет каждую строку и требует уникальности каждого значения. UNIQUE: каждое значение в столбце должно отличаться. NOT NULL: в столбцах обязательно должны быть значения. DEFAULT: дополнительный аргумент, который подставляется в качестве предполагаемого значения для каждой новой строки, если в ней не указано значение для этого столбца. 13. Что такое оператор? Оператор (statement) – это текст, который база данных распознает как допустимую команду. Операторами можно пользоваться для выполнения таких задач, как изменение структуры таблицы, обновление данных или извлечение данных из БД. Структура операторов может варьировать, но каждый из них должен заканчиваться точкой с запятой (;). Количество строк в операторе неважно. Оператор можно записать в одну строку или разделить на несколько (для лучшей читабельности). 14. Как вы проверите, есть ли в поле значение или нет? Если в поле отсутствует значение, оно обозначается как NULL. Чтобы проверить поля на пустые значения, можно прописать в качестве условия IS NULL: WHERE [столбец] IS NULL. Чтобы найти поля со значением, добавьте в условие IS NOT NULL: WHERE [столбец] IS NOT NULL. 15. Чем отличаются DISTINCT и UNIQUE? DISTINCT – это ключевое слово, которым мы пользуемся, если хотим вернуть уникальные значения на выводе. Оно отсеивает все повторяющиеся значения в конкретном столбце. UNIQUE – это ограничение, которым пользуются, чтобы все значения столбца отличались. Оно похоже на PRIMARY KEY, с той лишь разницей, что в таблице может быть множество разных столбцов с UNIQUE. 16. Для чего используются агрегатные функции? Агрегатные функции используются для выполнения вычислений на одном или нескольких значениях и возвращают одиночное значение с осмысленной информацией. Несколько примеров агрегатных функций: COUNT(), SUM(), MAX(), MIN(), AVG() и ROUND(). 17. Что такое соединение (JOIN)? JOIN – это способ объединения строк из двух и более таблиц посредством общего столбца. 18. В чем отличие INNER JOIN от LEFT JOIN? INNER JOIN используется для объединения строк из двух таблиц, которые соответствуют условию ON. В конечный результат не попадают строки, не соответствующие условию ON. LEFT JOIN сохраняет все строки из первой таблицы, вне зависимости от того, есть ли для них совпадающая по условию ON строка во второй таблице. 19. Для чего нужны оконные функции? Оконные функции (windows functions) нужны в случаях, когда вы хотите сохранить значения своей исходной таблицы и параллельно отобразить сгруппированную или суммарную информацию. Они похожи на агрегатные функции, но не сокращают количество строк в результате, а объединяют и группируют их в несколько результатов. 20. Что такое индексы и для чего они нужны? Индексы – это мощный инструмент, который используется в фоновом режиме БД для ускорения запросов и выступает в роли справочной таблицы для данных. Они нужны для эффективного хранения данных и быстрого их получения, что может быть критически важным для успеха крупных технологических компаний, которые обрабатывают петабайты данных каждый день.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59