Автоматическая система аудита Beichat SQL

MySQL SQL Эксплуатация и обслуживание

Автор статьи: Лю Ханьхуа, старший инженер по эксплуатации и техническому обслуживанию Bei Liao.



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

1. Предыстория спроса

1.1 Какую проблему нужно решить
Для единого стандарта написания операторов MySQL ручная проверка трудоемка, чем больше стандартов, тем сложнее их эффективно реализовать, а эффективность низка.

1.2 Решает ли решение эту проблему?
Мое решение здесь основано на Inception, чтобы разработать веб-систему, которая объединяет функции отправки SQL, запроса и настройки процесса;
Реализуйте автоматизацию процесса отправки и проверки SQL, эффективно внедрите единый стандарт написания операторов Mysql и реализуйте оптимизацию операторов SQL.

Qunar's Inception — это автоматизированная система эксплуатации и обслуживания, объединяющая аудит, выполнение и откат. Она модифицирована на основе кода MySQL. Ее можно использовать для четкого, подробного и точного просмотра SQL-операторов MySQL. такой же, как у MySQL.Вы можете использовать клиент MySQL для прямого подключения, но он не требует полномочий аутентификации.Это сервер по отношению к приложению (система процесса проверки верхнего уровня и т. д.), и вам необходимо указать адрес сервера и начальный сервер при подключении.Порта достаточно, и это клиент по отношению к онлайн-серверу MySQL, соответствующему оператору, подлежащему аудиту или выполнению.Он должен подключаться к серверу базы данных в режиме реального времени внутри, чтобы получить необходимая информация, либо прямо в режиме онлайн Выполнить соответствующую выписку и получить бинлог и т.д. Inception является промежуточным сервисом.

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

2. Обзор функций

1. Процесс отправки SQL показан на рисунке



Процесс отправки RDS онлайн:
Заявление sql, представленное разработчиком, должно быть проверено Inception на наличие спецификации синтаксиса sql.
Только после этого контент может быть отправлен следующему руководителю проекта для проверки контента.
Наконец, он просматривается администратором базы данных и решает, следует ли немедленно выполнить оператор SQL в соответствии с онлайн-статусом RDS.

2. Веб-интерфейс «Управление конфигурацией проекта» поддерживает разработку, тестирование RDS, онлайн-запрос конфигурации проекта RDS, создание, изменение и другие функции управления.
2.1 Управление конфигурацией проекта Только администратор базы данных имеет право настраивать и может определять процесс и конфигурацию отправки SQL в различных средах.




Наша среда разработки и тестирования здесь не требует аудита контента и аудита DBA.Пока она проходит автоматический аудит (Inception выполняет проверку спецификации синтаксиса sql), среда разработки и тестирования может быть выпущена;

Автоматический аудит получает доступ к Inception, вызывая «сценарий автоматической ассоциации аудита» (поддерживает привязку и соединение конфигурации rds и mysql) для проверки спецификации синтаксиса sql.

host — это адрес rds или mysql, User — это учетная запись, pass — это пароль, port — это порт, когда execute равно 1, выполняется sql, а когда execute равно 0, он не выполняется, а только проверяется.
mysql_structure - это оператор sql

Вызываемое соединение Python Inception имеет только один общий сценарий, который принимает параметры, и после вызова он принимает сценарий Python для обратной связи с содержимым выполнения.

3. Функция «онлайн-заказ sql»: отправка нового онлайн-заказа, редактирование, копирование, запрос, поиск, проверка

Шаг 1: Разработчик выбирает имя базы данных и соответствующую среду для отправки и вводит следующую информацию.



При выборе проверки значение выполнения, полученное Inception, равно 0, и Inception выполняет проверку спецификации синтаксиса sql.

После того, как проверка пройдена, нажмите «Отправить» и подождите, пока менеджер проекта проверит содержимое.


Шаг 2: Менеджер проекта нажимает «Просмотреть» и решает, разрешить ли его в соответствии с содержимым SQL.Если он проходит проверку, переходите к следующему шагу.





Шаг 3. Проверьте администратором базы данных, нажмите «Проверить и пройти», а затем решите, следует ли немедленно выполнить оператор sql в соответствии с онлайн-загрузкой RDS или MYSQL.


4. «Запрос записи операции» может быстро экспортировать записи операций и операторы SQL определенной библиотеки, а также может находить операторы SQL и отправленные записи отдельных лиц, время и отчеты аудита отправки.


Нажмите, чтобы просмотреть, чтобы увидеть больше записей процесса аудита



Ниже приведен экспортированный подробный оператор sql и соответствующие записи.


5. «Настройки отправки SMTP»: поддержка онлайн-уведомлений по электронной почте для назначенных нескольких человек.



6. Связанный автоматический аудит Inception: Интернет передает операторы SQL, вызывает соответствующий скрипт Python для доступа к интерфейсу Inception и отправляет код SQL в среду разработки и тестирования.

7. Аккаунт отправителя SQL: есть разработчики, руководители проектов, администраторы баз данных.

8. Кроме того, фильтр отправки sql:

Оператор отправки Sql содержит поля опасных операций drop и truncate. Если будет обнаружено, что эти операторы отправляются автоматически, они не будут пройдены.

Наконец, здесь снова благодарить Tony Great Gog Chat Platform Group для их поддержки, поможет и поддержать ощущение учащихся Xie Linyi и Li Haiwen!