Олег Юрченко @yurchenko_oleg
Разработчик приложений.
- Badges
- Habred
- Invited
- by invitation from UFO
- About
- Основные технические достижения за 25 лет работы на американских заказчиков:
• Устранение зависимости нагрузки на сервер баз данных от размера базы данных. Нагрузка зависит только от размера бизнеса. Подробности в статье habr.com/ru/articles/868010.
• Создание хранилища данных с синхронизацией раз в минуту.
• Оптимизация производственных процессов. Однажды от заказчика пришёл вопрос про возможность понять видел ли какой-нибудь работник в роли «Администратор» последние данные некоторого множества полей ордера. Это чтобы ордер на доставку потерянных сумок пассажиру сразу после успешной доставки попадал в счёт к авиакомпании без участия Администратора, поскольку все данные по расчёту денег в ордере в порядке и лишний раз этот ордер смотреть не надо. Моя идея была смотреть по аудиту изменений, когда Администратор последний раз сохранял свои изменения. Т.е. если Администратор нажал кнопку «Сохранить», то он со всеми данными по деньгам согласен. И если после этого нужные поля не менялись, то ордер после доставки сумок сразу добавлять в счёт. Это было время очередного расширения бизнеса, а тут нехватка ответственных работников, которых нужно ещё нанять и подготовить. Оптимизация производственного процесса проблему решила так, что после этого заказчик начал каждый год поздравлять меня в декабре с Рождеством.
• Реализация безопасности приложения на хранимых процедурах. База данных сама себя защищает и контролирует доступ к данным (американцы это называли «watching dog»). Приложение работает с базой данных через пользователя базы данных, который только имеет права вызывать хранимые процедуры, других прав нет. У каждой процедуры обязательный параметр – идентификатор пользователя (работника бизнеса). Процедура проверяет права пользователя вызывать процедуру и работать с переданными в процедуру данными. Возвращающие данные процедуры выдают только те данные, с которыми пользователь имеет право работать, неразрешенные к просмотру данные не попадают даже на сервера приложений, база данных их не выдаёт. Взломщику будет затруднительно использовать такое соединение с базой данных, особенно если передаваемый в процедуры идентификатор пользователя – создаваемый каждый раз при входе пользователя в приложение GUID.
• Шифрование персональных данных на уровне СУБД MS SQL Server (ключ сервиса + ключ базы данных + сертификат + симметричный ключ шифрования данных). Данные шифруются и расшифровываются в хранимых процедурах после проверки прав пользователя/работника. После восстановления базы данных из резервной копии на другом сервере, данные будут доступны для расшифровки только после восстановления на этом сервере оригинального ключа сервиса от рабочего сервера. Т.е. на рабочем сервере надо выполнить команду BACKUP SERVICE MASTER KEY TO FILE, которая требует право CONTROL SERVER на сервере, потом восстановить из этого файла ключ сервиса на новом сервере. Кража резервной копии базы данных ещё не означает кражу данных.
• Работающее с несколькими СУБД приложение. У компании-покупателя приложения был выбор, какую СУБД использовать: Visual FoxPro, MS SQL Server или Oracle. Продукт для бизнеса в области медицинского страхования США. Финалист конкурса Visual FoxPro Excellence Awards 1999.
Information
- Rating
- Does not participate
- Location
- Новосибирск, Новосибирская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Application Developer, Database Developer
Lead
From 350,000 ₽
Designing application architecture
Database design
Software development
Database
Microsoft SQL Server
SQL
.NET
C#
Python