ВЫПУСКНАЯ РАБОТА БАКАЛАВРА

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "ВЫПУСКНАЯ РАБОТА БАКАЛАВРА"

Транскрипт

1 Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский политехнический университет Петра Великого» Институт компьютерных наук и технологий Кафедра измерительных информационных технологий Проект допущен к защите Зав. кафедрой Г.Ф.Малыхина 2015 г. ВЫПУСКНАЯ РАБОТА БАКАЛАВРА Тема: «Защита базы данных кредитной информации» Направление: Информационная безопасность Выполнил студент гр /2 (подпись) М.В.Чистякова Руководитель, профессор, д.т.н. (подпись) Г.Ф.Малыхина Санкт-Петербург 2015 г.

2 Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский политехнический университет Петра Великого» Институт компьютерных наук и технологий Кафедра измерительных информационных технологий ЗАДАНИЕ на бакалаврскую работу Чистякова М.В. 1) Тема работы: «Защита базы данных кредитной информации» 2) Срок сдачи: 9 июня 2015г. 3) Исходные данные к работе: СУБД SQLite Программная среда разработки Qt 5.4 Утверждаю июня 2015г. Зав. кафедрой ИИТ Малыхина Г.Ф. (подпись) 4) Содержание расчётно-пояснительной записки (обзор подлежащих разработке вопросов): Аналитический обзор баз данных кредитной информации и методов защиты данных Построение модели БД кредитной информации Разработка программного обеспечения БД кредитной информации 5) Перечень графического материала: Схема 1. ER- модель БД 6) Дата выдачи задания: 3 марта 2015г. Научный руководитель д.т.н. профессор Малыхина Г.Ф. Задание принял к исполнению «3» марта 2015г. (подпись)

3 РЕФЕРАТ На 44 с, 3 рисунка, 6 приложений. Базы данных, методы защиты баз данных, аудит баз данных, SQL, C++, Qt, хеширование данных, персональные данные, уровень защищенности персональных данных. В данной работе изложен процесс разработки базы данных кредитной информации на языке SQL и приложение клиента на языке С++ с использованием инструментария Qt. Данны общие сведения о базах данных, кредитной информации, персональных данных. Приведены требования законодательства к защите персональных данных. Представлены методы защиты информации в базах данных, и методы аудита баз данных, а также методы криптографиеческой защиты данных. THE ABSTRACT 44 pages, 3 pictures, 6 applications Database, database protection methods, database audit, SQL, C++, Qt, data hashing, personal data, protection level personal data. The present work deals with credit file database development process on SQL APL and client application on C++ using Qt software. The general information on databases, credit file, pesronal data is given. Data security requirements are given. Database data security, database audit methods and cryptographic data security are given.

4 СОДЕРЖАНИЕ Введение Аналитический обзор баз данных кредитной информации и методов защиты Аналитический обзор баз данных кредитной информации Базы данных Кредитная информация Использование баз данных кредитной информации Системы управления базами данных и языки программирования Анализ возможностей современных СУБД и выбор СУБД для базы данных кредитной информации Выбор языка программирования для приложения клиента Требования законодательства РФ к защите персональных данных Анализ методов защиты персональных данных в БД Развернутое техническое задание Выводы Моделирование базы данных кредитной информации. Политика безопасности Моделирование базы данных кредитной информации База данных кредитной информации Модель на языке ODL Модель сущность-связь (E/R-модель) Модель политики безопасности Криптографическая защита Аудит Выводы Разработка базы данных и программного обеспечения Разработка базы данных кредитной информации Создание базы данных кредитной информации Аудит базы данных кредитной информации Разработка приложения клиента Реализация приложения-клиента Выводы Заключение Список использованных источников Приложения Приложение 1. Список мер по обеспечению безопасности персональных данных... 53

5 Приложение 2. Модель базы данных кредитной информации на языке ODL Приложение 3. Создание и заполнение базы данных на языке SQL Приложение 4. Алгоритм работы приложения клиента Приложение 5. Код приложения клиента на языке С++ с использование инструментария Qt Приложение 6. Варианты работы программы

6 6 Введение Актуальность. В современном обществе большое количество людей, которые взяли кредит или только собираются это сделать. Для них очень важно заотслеживать информацию по своему кредиту: оставшаяся сумма по кредиту, штрафы и т.д. Сейчас чаще всего доступ к такой информации осуществляется через личный кабинет на сайте банка, но у начинающих компьютерных пользователей это может вызвать затруднения. Разработанное в данной работе приложение удобно и просто в использовании, что позволит облегчить доступ к информации всех клиентов банка, не зависимо от их компьютерной грамотности. Цель бакалаврской работы. Целью данной бакалаврской работы является разработка базы данных кредитной информации и приложенияклиента для работы с ней. Задача бакалаврской работы. Архитектура клиент-сервер позволяет разделить задачу на две подзадачи: - разработка базы данных, управляемой СУБД - разработка приложения-клиента, получающего доступ к базе данных с помощью SQL-запросов. Основные результаты бакалаврской работы. В разделе 1 выбрана реляционая модель данных, определена СУБД для управления базой данных SQLite, язык программирования приложения клиента С++ и использование инструментария Qt, а также основные требования по обеспечению безопасности для второго уровня безопасности, которые необходимо реализовать. В разделе 2 была разработана модель базы данных и политика безопасности. В разделе 3 описаны разработанные база данных кредитной информации и приложения клиент для доступа к ней.

7 7 1. Аналитический обзор баз данных кредитной информации и методов защиты Целью первой главы является аналитический обзор баз данных кредитной информации, выбор СУБД и языка программирования, а также обзор требований законодательства РФ к защите персональных данных и методов защиты данных в базах данных. Первый раздел посвящён обзору баз данных кредитной информации. Второй выбору СУБД и языка программирования. Третий обзору требований законодательства РФ. Четвертый рассматривает методы защиты баз данных. 1.1 Аналитический обзор баз данных кредитной информации. Задачами данного раздела является рассмотрение теоретических основ баз данных, определение кредитной информации, и определение, где используются базы данных кредитной информации в настоящее время Базы данных База данных это некоторый набор перманентных (постоянных) данных, используемых прикладными системами какого-либо предприятия, организации. Она представляет собой совокупность связанных данных конкретной предметной области [2]. Каждый различимый объект в базе называется сущностью. Между собой их объединяют связи. И те, и другие обладают свойствами, которые соответствуют данным в базе. Существует несколько подходов к организации системы баз данных. Первыми были иерархическая и сетевая модели данных. Они начали применяться в начале 60-х годов. После чего в начале 70-х была

8 8 предложена реляционная модель. Их главное различие заключается в способах представления представления взаимосвязей между объектами. Иерархическая модель данных строится по принципу иерархии типов объектов, т.е. один тип объектов является главным, а остальные, находящиеся на низших уровнях, подчинёнными. Между главным и подчинёнными типами объекта устанавливается взаимосвязь один ко многим. Иерархическая древовидная структура строится из узлов и ветвей. Узел представляет собой совокупность атрибутов данных, описывающих некоторый объект. Зависимые узлы располагаются на более низких уровнях дерева. В сетевой модели данных понятия главного и подчинённых объектов несколько расширены. Любой объект может быть и главным, и подчинённым. Главный объект обозначается термином владелец набора, а подчинённый член набора. Один и тот же объект одновременно может выступать и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом случае взаимосвязей. В сетевой модели данных объекты объединяются в сеть. Каждый тип записи может содержать, один, несколько или вообще не содержать атрибутов. Реляционные системы основаны на формальной теории, называемой реляционной моделью данных, которая предполагает следующее: 1) данные представлены посредством строк в таблицах, и эти строки могут быть непосредственно интерпретированы как истинные высказывания; 2) для обработки строк данных предоставляются операторы, которые напрямую поддерживают процесс логического получения дополнительных истинных высказываний из существующих высказываний.

9 9 В работе реализуется реляционная модель баз данных Кредитная информация Кредит активно изучается всеми разделами экономической науки. Такой интерес к вопросу кредита и кредитования обусловлен тем, что он играет большую роль не только в национальной и международной экономике, но и в жизни общества, а также конкретного человека. Согласно определению Джона Милля, кредит «есть разрешение одному лицу пользоваться капиталом другого лица» [1]. Основные характеристики кредитов: Возвратность - обязательная выплата кредитору суммы основного долга на оговорённых условиях; эта особенность отличает кредит от других экономических категорий товарно-денежных отношений. Срочность - заранее оговорённые сроки возврата кредитору заёмных средств, то есть временная определённость возврата кредита, нарушение которой влечёт за собой применение определённых санкций. Срок кредитования является предельным временем нахождения ссудных средств в распоряжении заёмщика. Платность - основывается на возмездном характере услуг, оказываемых банками при кредитовании. За предоставление банковской ссуды, как правило, взимается определённая плата в виде процентов. Размер процентной ставки устанавливается сторонами по кредитному договору [3]. Обеспечение внесение заёмщиком залога по кредиту, или же указания третьего лица, как поручителя. В случае задолженности по кредиту поручитель берет на себя ответственность за выплату кредита.

10 Кредит имеет следующие основные формы: коммерческий и банковский кредиты, потребительский, международный и государственный кредиты. В данной дипломной работе рассматривается потребительский кредит. Потребительский кредит - это продажа торговыми предприятиями потребительских товаров с отсрочкой платежа или предоставление банками ссуд на покупку предметов потребления, товаров длительного пользования, оплате бытовых услуг на условиях отсрочки платежа. Таким образом, кредитной информацией является тип, сумма кредита, процентная ставка, сроки его возврата и информация о залоге или поручителе, так же необходимо хранить оставшуюся сумму выплаты и номер кредитного договора клиента Использование баз данных кредитной информации В настоящее время в большинстве крупных банков используется компьютерные технологии для обработки различных данных пользователей. Для хранения и быстрого доступа к этой информации удобнее всего использовать возможности современных баз данных. Это позволяет хранить данные в одном защищенном месте и предоставлять доступ к ним с различных компьютеров. В данной работе разрабатывается защита базы данных кредитной информации. Она является частью общей базы данных банка. Их главное отличие заключается в том, что база данных банка, содержит в себе больше данных необходимых для оказания других услуг банка, помимо кредитования. Разрабатываемую в работе защиту базы данных кредитной информации, можно применять в последующем для всей базы данных банка, т.к. первая содержит в себе основные данные, которые необходимо защищать. 10

11 Системы управления базами данных и языки программирования Задачами данного раздела является выбор СУБД для базы данных кредитной информации и языка программирования для приложения клиента Анализ возможностей современных СУБД и выбор СУБД для базы данных кредитной информации Система управления базой данных (СУБД) включает в себя программное обеспечение, которое управляет всем доступом к базе данных. Функции СУБД: 1) определение данных; 2) обработка данных; 3) оптимизация и выполнение; 4) защита и сохранение целостности данных; 5) восстановление данных и поддержка параллельности; 6) словарь данных. Сама по себе система баз данных это достаточно простая структура, которая включает в себя две части: сервер (внутренний компонент или машины баз данных) и набор клиентов (внешний компонент или внешний интерфейс). Сервер это и есть СУБД. Он выполняет все основные функции СУБД и осуществляет поддержку внешнего, концептуального и внутреннего уровня. Клиентом же являются различные приложения, которые обращаются к серверу. Это могут быть приложения, написанные самим пользователем, приведенные в данной работе, так и уже готовые приложения.

12 Выбор СУБД осуществляется разработчиком, а не пользователем, поскольку она управляется приложением. Также при выборе руководствуются следующими показателями: как масштабируемость, мультиплатформенность, быстродействие (как в выборе транзакций, так и в построении сложных аналитических выборок), работа с XML и кластерные решения. IBM, Oracle и Microsoft ведущие поставщики СУБД. По техническим причинам для реализации приложения использована СУБД SQLite разработчика Ричарда Хиппа. Ее особенностями являются то, что вся база данных хранится в одном файле, а также нет возможности создавать пользователей. В остальном она практически не отличается от более крупных СУБД. Использование такой системы позволит только промоделировать соединение приложение клиента с базой данных локально на одном компьютере. Но реализация такого подхода предполагает защиту практически от всего списка угроз к реализации соединения клиент-сервер кроме специфических угроз соединению клиента с сервером Выбор языка программирования для приложения клиента В современном мире существует множество различных языков программирования. Например, С, С++, Java и др. В качестве языка для разрабатываемого приложения клиента был выбран язык С++. C++ компилируемый статически типизированный язык программирования общего назначения. Он поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную 12

13 13 компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции [15]. В качестве инструментария для разработки программы клиента был выбран Qt. Программой разработки приложения является Qt Designer. Инструментарий включает в свой состав различные модули и предоставляет: поддержку двух- и трехмерной графики; возможность интернационализации, которая позволяет значительно расширить рынок сбыта ваших программ; использование формата XML (extensible Markup Language); STL-совместимую библиотеку контейнеров; поддержку стандартных протоколов ввода-вывода; классы для работы с сетью; поддержку программирования баз данных; и другое. Отличительной особенностью Qt является концепция сигналов и слотов для взаимосвязи между различными объектами. Сигналы и слоты могут быть соединены друг с другом, причем сигнал может быть соединен с большим количеством слотов. Слот, в свою очередь, тоже может быть соединен со многими сигналами. В случае, когда слот не делает ничего, кроме отправки полученного сигнала дальше, то можно вообще обойтись без него, а просто соединить сигналы друг с другом [8]. Во всех остальных случаях слот выполняет определенную пользователем последовательность действий после получения сигнала. Таким образом, языком для разработки приложения клиента был выбран язык С++, а программной средой разработки Qt.

14 Требования законодательства РФ к защите персональных данных Задачами данного раздела является обзор основных требований законодательства РФ для защиты персональных данных, и выбор необходимых для применения к разрабатываемому приложению. Помимо кредитной информации в разрабатываемой базе данных необходимо хранить персональные данные. Персональные данные (ПДн) любая информация, относящаяся к прямо или косвенно определенному, или определяемому физическому лицу (субъекту персональных данных) [13]. Базовый закон о персональных данных в РФ - Федеральный закон Российской Федерации от 27 июля 2006 г. 152-ФЗ «О персональных данных». Международные обязательства, которые Российская Федерация обязалась исполнять, подписав Конвенцию Совета Европы о защите физических лиц при автоматизированной обработке персональных данных 7 ноября 2001 года, послужили причинной принятия закона. Оператор - государственный орган, муниципальный орган, юридическое или физическое лицо, организующие и (или) осуществляющие обработку персональных данных, а также определяющие цели и содержание обработки персональных данных [13, гл. 1, ст. 3]. В разрабатываемой базе данных хранится и обрабатывается персональные данные, а значит необходимо выполнять требования по защите персональных данных, предъявляемые к операторам. Оператор при обработке персональных данных обязан принимать все необходимые меры или обеспечить их принятие для защиты персональных данных от неправомерного или случайного доступа к ним, уничтожения, изменения, блокирования, копирования, предоставления, распространения

15 15 персональных данных, а также от иных неправомерных действий в отношении персональных данных. Обеспечение безопасности персональных данных достигается, в частности: 1) определением угроз безопасности персональных данных при их обработке в информационных системах персональных данных; 2) применением организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных, необходимых для выполнения требований к защите персональных данных, исполнение которых обеспечивает установленные Правительством Российской Федерации уровни защищенности персональных данных; 3) применением прошедших в установленном порядке процедуру оценки соответствия средств защиты информации; 4) оценкой эффективности принимаемых мер по обеспечению безопасности персональных данных до ввода в эксплуатацию информационной системы персональных данных; 5) учетом машинных носителей персональных данных; 6) обнаружением фактов несанкционированного доступа к персональным данным и принятием мер; 7) восстановлением персональных данных, модифицированных или уничтоженных вследствие несанкционированного доступа к ним; 8) установлением правил доступа к персональным данным, обрабатываемым в информационной системе персональных данных, а также обеспечением регистрации и учета всех действий, совершаемых с персональными данными в информационной системе персональных данных; 9) контролем за принимаемыми мерами по обеспечению безопасности персональных данных и уровня защищенности информационных систем персональных данных [13, гл. 4, ст. 19].

16 16 Состав и содержание организационных и технических мер по обеспечению безопасности персональных данных определенны в приказе Федеральной службы по техническому и экспортному контролю (ФСТЭК России) от 18 февраля 2013 г. N 21 г. Москва "Об утверждении Состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных". Согласно ему, в рамках системы защиты персональных данных с учетом актуальных угроз безопасности персональных данных и применяемых информационных технологий, а также уровня защищенности персональных данных следует применять различные составы организационно технических мер. Постановлением правительства РФ от 1 ноября 2012 года 1119 «Об утверждении требований к защите персональных данных при их обработке в информационных системах персональных данных» утверждено 4 уровня защищенности персональных данных. Уровень защищенности персональных данных это комплексный показатель, который характеризует выполнение требований, нейтрализующих угрозы безопасности информационных систем персональных данных. В зависимости от уровня защищенности меняется состав и содержание организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных [10]. Персональные данные, обрабатываемые в базе данных кредитной информации, относятся к 3 группе общедоступные персональные данные, т.е. сведения о субъекте, полный и неограниченный доступ к которым предоставлен самим субъектом. Так же в ней обрабатываются персональные данные субъектов, не являющихся работниками

17 организации, и этих субъектов менее А актуальные угрозы первого типа связаны с наличием не декларированных возможностей в системе ПО, используемом в информационных системах персональных данных. Отсюда следует, что уровень защищенности персональных данных в базе данных кредитной информации второй. Полный список всех мер по обеспечению безопасности персональных данных для каждого уровня представлен в приложении 1. Перечислим меры необходимые для второго уровня безопасности, которые будут реализованы в рамках разрабатываемого приложения: Идентификация и аутентификация пользователей, являющихся работниками оператора. Управление идентификаторами. Идентификация и аутентификация пользователей, не являющихся работниками оператора. Управление учетными записями пользователей. Реализация необходимых методов, типов и правил разграничения доступа. Разделение полномочий пользователей, администраторов и лиц, обеспечивающих функционирование информационной системы. Ограничение неуспешных попыток входа в информационную систему [11]. 17

18 Анализ методов защиты персональных данных в БД Задачами данного раздела является обзор основных методов защиты персональных данных, и выбор необходимых для применения в разрабатываемой базе данных. В современных СУБД существует два подхода к обеспечению безопасности: Избирательный Обязательный Избирательный подход заключается в создании пользователей, которые обладают различными привилегиями при работе с объектами. Пользователи могут быть объединены в группы. Под привилегиями пользователя или группы понимаются операции, которые они могут выполнять с объектами базы данных. В настоящее время в СУБД появилось понятие роль. Роль это переименованный набор полномочий. Удобство их использования заключается в том, что роли можно создавать до того, как будут созданы пользователи системы. В случае обязательного подхода настраиваются уровни допуска к каждому объекту. Доступ к объекту имеет пользователь с соответствующим уровнем. В обеспечении безопасности, не зависимо от подхода, необходимо придерживаться двух фундаментальных правил: проверка полномочий и проверка подлинности (аутентификация). Проверка полномочий основана на том, что каждому пользователю или процессу информационной системы соответствует набор действий, которые он может выполнять по отношению к определенным объектам. А проверка подлинности это подтверждение того, что пользователь или

19 19 процесс, пытающийся выполнить действие, действительно тот, за кого он себя выдает. Существует ряд специфических угроз безопасности баз данных. Инференция получение конфиденциальной информации из сведений с меньшей степенью конфиденциальности путем умозаключений; Агрегирование - получения более важных сведений по сравнению с важностью тех отдельно взятых данных, на основе которых и получаются эти сведения; Комбинация разрешенных запросов для получения закрытых данных - Использование сложных, а также последовательности простых логически связанных запросов позволяет получать данные, к которым доступ пользователю закрыт [7]. Методы противодействия данным угрозам: Блокировка ответа при неправильном числе запросов. Блокировка ответа, если в запросе содержится больше определённого числа совпадающих данных из предыдущих запросов. Искажение ответа путем округления и другой преднамеренной коррекции данных. Взаимный обмен значений полей записей. Разделение баз данных. База данных разделяется на группы, причем в одну группу может войти не более определенного числа записей. Запрещены запросы к нескольким записям из одной группы, но разрешены запросы к нескольким группам одновременно. Случайный выбор записи для статической обработки.

20 20 Контекстно-ориентированная защита. В зависимости от предыдущих запросов пользователя назначаются атрибуты доступа объектов. Контроль поступающих запросов. Для защиты базы данных кредитной информации выберем избирательный подход, а также будем использовать метод контроля поступающих запросов. Самой актуальной из описанных выше угроз для базы данных кредитной информации является комбинация разрешенных запросов для получения закрытых данных, т.к. оставшиеся две угрозы подразумевают в себе «отгадывание» закрытых данных. В рассматриваемой базе данных закрытые данные - это паспортные данные пользователя вероятность правильного их «отгадывания» очень мала.

21 Развернутое техническое задание 1. Введение Система обработки и хранения конфиденциальных данных предназначена для быстрого доступа к информации о кредитах клиентов банка. 2. Основания для разработки Задание бакалаврской работы. 3. Назначение разработки Программа представляет собой приложение клиент для доступа к базе данных кредитной информации. 4. Требования к программе Программа должна решать следующие задачи: доступ к данным по имени и паролю; обеспечение разграничения доступа к данным по ролям: клиенты и работники банка; наличие процедуры поиска; возможность фильтрации; возможность внесения платежа по кредиту со счета (если таковой имеется) Требования к функциональным характеристикам Создание базы данных кредитной информации Требования к надежности Для устойчивого функционирования программного обеспечения необходимо: защищенное постоянное соединение с сервером базы данных;

22 22 наличие бесперебойных блоков питания персонального компьютера Условия эксплуатации Диапазон рабочих температур: 0 +30º С Относительная влажность при температуре 25º С % Все пользователи должны являться квалифицированными пользователями персонального компьютера, обладающие знаниями и навыками по работе с документированной информацией в электронном виде Требования к составу и параметрам технических средств Технические характеристики: Центральный сервер базы данных процессор Intel или совместимый с тактовой частотой от 2 GHz и выше, 32 битная ОС (Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2), 2 Gb оперативной памяти и выше. Рабочие станции для запуска приложения клиента: процессор Intel или совместимый с тактовой частотой от 1 GHz и выше, 32 битная ОС (Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2), не менее 512 Mb оперативной памяти.

23 Выводы Таким образом, в первой главе была выбрана реляционная модель баз данных, определено, что кредитной информацией является типом, суммой кредита, процентной ставкой, сроками его возврата и информацией о залоге или поручителе, а также определена необходимость хранить оставшуюся сумму выплаты по кредиту и номер кредитного договора клиента. В качестве СУБД была выбрана SQLite, а в качестве языка программирования приложения клиента и инструментария C++ и Qt, соответственно. На основе требований законодательства РФ определен второй уровень защищенности персональных данных в базе данных кредитной информации. А также были выбраны основные меры необходимые для второго уровня, которые будут реализованы в разрабатываемом приложении. И определено, что основной угрозой к разрабатываемой базе данных является комбинация разрешенных запросов. Основным подходом для защиты был выбран избирательный подход, а основным методом контроль поступающих запросов. На основе всех вышеперечисленных выводов было составлено развернутое техническое задание.

24 24 2. Моделирование базы данных кредитной информации. Политика безопасности. Целью второй главы является моделирование базы данных кредитной информации и моделирование основных средств защиты информации в ней. Первый раздел главы посвящен построению моделей базы данных кредитной информации на языке ODL и E/R-модели. Второй раздел посвящен описанию политики безопасности, которая будет реализованы для защиты информации в базе данных кредитной информации. 2.1 Моделирование базы данных кредитной информации. Процесс проектирования любой базы данных начинается с построения структуры базы данных. В ней отражаются основные сущности, их отношения и характеристики. Разрабатывается схема БД с помощью моделирования данных. Существует два подхода к моделированию: язык ODL и диаграммы сущность-связь (E/R). При этом необходимо четко знать тип проектируемой БД, т.к. первый подход можно использовать и для объектно-ориентированных баз данных, и для реляционных, второй же подход применим только для реляционных баз данных. База данных кредитной информации реляционная, а значит можно использовать оба подхода к моделированию База данных кредитной информации База данных кредитной информации содержит пять основых таблиц и две вспомогательных. Основные таблицы это: client, credit, guarantor, account и password. В них хранится вся информация. Вспомогательные таблицы это audit и oldvalue.

25 Client содержит в себе все данные о пользователе банка: фамилия, имя, отчество, дата рождения и телефон, серия и номер паспорта, кем и когда он был выдан, домашний адрес, место работы, должность и зарплату. Guarantor содержит в себе все данные о поручителях по кредиту. Они совпадают с данными о клиентах, кроме паспортных данных. Credit содержит в себе все данные о кредите: id клиента, номер кредитного договора, дата выдачи, статус, id поручителя, если он есть, процент, остаток по кредиту, продолжительность, тип кредита и сумма кредита. Account содержит в себе номер счета, количество денег на счету и id пользователя. Password содержит в себе логин пользователя, состоящим из имени и фамилии, пароль и id пользователя. В таблицу audit записывается информация о действиях пользователя приложения. А в таблицу oldvalue копируются старые значения данных пользователя и поручителя перед их изменением. Это происходит для того, чтобы была возможность восстановить данные. Вспомогательные таблицы не представлены в моделях баз данных т.к. они не связаны не с одной из таблиц Модель на языке ODL Язык описания объектов ODL (Object Defifnition Language) - средство определения схемы базы данных. Он является расширением IDL (Interface Definition Language - язык описания интерфейсов) модели OMG (Object Management Group - консорциум поставщиков ООБД и других заинтересованных организаций) и предоставляет средства для определения объектных типов, их атрибутов, связей и методов [4]. 25

26 Объявление класса включает: 1. Имя класса. 2. Объявление ключей (необязательное). 3. Объявление пространства (extent) = имя для множества текущих объектов класса 4. Объявления элементов. Элемент является аттрибутом, отношением или методом. Пример: class <name> elements = attributes, relationships, methods Объявление элементов: attribute <type> <name>; relationship <rangetype> <name>; Связи между классами описываются взаимно-обратными парами в самиъ классах. Существует три типа связей: «многие-ко-многим», «многие-кодному» и «один-к-одному». В первом случае связь имеет тип множества (Set) на стороне обоих связанных объектов. Во втором тип множество на стороне первого объекта, и простое имя класса на стороне второго объекта. В последнем случае простое имя класса на стороне каждого объекта. Модель базы данных кредитной информации на языке ODL представлена в приложение Модель сущность-связь (E/R-модель) ER-модель используют при высокоуровневом проектировании баз данных. В этой модели представлены основные сущности моделируемой 26

27 базы данных и связи между ними. ER-модель это формальная конструкция. В качестве стандартной графической нотации для визуализации используется диаграмма сущность связь или E/R-диаграмма. Используем нотацию Питера Чена. Сущности отображаются в виде прямоугольников, связи ромбов. Атрибуты отображаются в виде овалов, связанных с сущностью. 27

28 28 numberexpense Guarantor Credit Account Client Password Get Keep Take Save idclient password login idclient amount number idclient Name lastname Otch phone b-day gender series number published apartment home street city date jobtitle job salary idguarantor Name lastname Otch phone b-day gender apartment home street city jobtitle job salary idclient contractnumber dateissue term type idguarantor status percent residue Sum

29 Модель политики безопасности Политика безопасности организации одно или несколько правил, процедур, практических приемов или руководящих принципов в области безопасности, которыми руководствуется организация в своей деятельности [6]. В разрабатываемом клиентском приложении существует два вида пользователей: работники банка и клиенты банка. Работник банка имеет доступ к основным данным в базе, и могут изменять и добавлять данные о клиенте, поручителе и кредите. Значит необходимо вести аудит действий работников банка, чтобы иметь возможность проследить за их действиями. Клиент же должен иметь доступ только к своим данным, но аудит его основных действий так же необходим. Доступ ко всей базе данных имеет только администратор. Аудит его действий с базой так же необходим, во избежание превышения им своих полномочий. Хранение паролей пользователей осуществляется в базе данных. Необходимо обеспечить их криптографическую защиту. Персональные данные пользователей политикой доступа, и к ним методы криптографической защиты приниматься не будут. Далее рассмотрим подробнее криптографическую защиту и аудит баз данных Криптографическая защита Использования уникального набора символов для подтверждения личности, т.е. пароля, распространенный способ защиты в информационных системах. При входе в программу пользователь вводит логин и пароль, после чего происходит сравнение с тем, что хранится в

30 30 базе данных. Если значения совпадают пользователь получает доступ, в противном случае в доступе будет отказано. Хранить и передавать пароль в открытом виде нельзя. Решением проблемы защиты паролей является использование методов криптографической защиты. Существует два метода криптографической защиты данных: Шифрование. Хеширование. Для реализации выберем метод хеширования данных. Хешированием называется процесс преобразования текста произвольной длинны в текст фиксированной длины с помощью хэш-функции. В отличие от шифрования процесс хеширования однонаправленный и необратимый. В базу данных заносится только результат работы хеш-функции. Для аутентификации предоставляемый пароль хешируется и результат сравнивается с тем, что хранится в таблице. Таким образом, если злоумышленнику и удается получить доступ к таблице, где хранятся пароли, у него нет практически никаких шансов восстановить их значения. В качестве алгоритма хеширования из всех возможных реализованных в инструментарии Qt был выбран SHA1. Он построен на идеи функции сжатия. На вход хеш-функции подается блок сообщения длинной 512 бит и выход предыдущего блока, который является значением всех предыдущих хеш-блоков. Результат на выходе последнего блока и будет являться хеш преобразованием сообщения Аудит Действия пользователей с базой данных необходимо отслеживать, т.к. это позволит определить злоупотребления своими полномочиями или

31 неавторизованный доступ. Нет смысла отслеживать все действия подряд есть риск в потоке информации не увидеть нужного Основные методы, используемые для аудита баз данных: 1. Системные триггеры. Используются для детального аудита. В журнал записываются глобальные события. Например, запуск и остановка базы данных, соединение с базой, изменение и удаление таблиц. 2. Update, delete и insert триггеры. Отслеживаются действия на уровне столбца и строки. С помощью триггеров можно сохранить данные до и после выполнения действия. У метода существует два минуса: невозможность отследить чтение данных и ресурсоемкость. 3. Детализированный (Fine-grained) аудит. Решается проблема отслеживания чтения данных. Внутренние триггеры срабатывают при разборе какой-нибудь части SQL-приложения или же запись в таблицу аудита происходит при чтении данных через приложение клиент. 4. Системные журналы. Сами СУБД часто генерируют журнальные файлы, информацию из которых можно использовать при проведении аудита. 31 Из всего выше перечисленного следует, что существует множество различных возможностей аудита баз данных, но, как уже было отмечено, использование их всех разом, может привести к большому потому информации, поиск в котором будет отнимать много времени и ресурсов. Поэтому в разрабатываемой базе данных ограничимся следующими задачами аудита: Аудит превышения ограничения неуспешных попыток входа.

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

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

34 34 3. Разработка базы данных и программного обеспечения Целью третьей главы является описание разрабатываемой базы данных кредитной информации и программного обеспечения для работы с ней. В первом разделе содержится описание базы данных на языке SQL, вовтором приложения клиента на языке С++ с использованием инструментария Qt. 3.1 Разработка базы данных кредитной информации Задачами данного раздела является описание разработанной базы данных кредитной информации на языке SQL Создание базы данных кредитной информации Выбранная в первой главе СУБД SQLite стандартно позволяет производить управление базой данных через консоль. Для работы с большими таблицами это не очень удобно, поэтому для управления базой данных кредитной информации была выбрана программа SQLiteStudio, которая является менеджером баз данных SQLite. В ней и была произведена разработка базы данных кредитной информации на языке SQL. Все таблицы соответствуют по содержанию модели базы данных, которая была приведена во второй главе. Информация, хранящаяся в базе данных, является случайно, и предназначена лишь для демонстрации работы программы. Ниже приведен код создания таблицы клиентов. Код создание всех остальных таблиц и их заполнение приведено в приложении 3.

35 35 CREATE TABLE Clients ( id INTEGER primary key AUTOINCREMENT, Name VARCHAR (30), LastName VARCHAR (30), Otch VARCHAR (30), Bday DATE, Phone VARCHAR (10), Gender CHAR(5), SeriesP INTEGER, NumberP INTEGER, PublishedP VARCHAR (255), DateP DATE, City VARCHAR (20), Street VARCHAR (30), Home INTEGER, Apartment INTEGER, Job VARCHAR (255), JobTitle VARCHAR (255), Salary INTEGER ); Идентификационный номер (id) клиента определяется автоматически самой СУБД и является автоинкрементным, т.е. каждое следующее добавление нового клиента автоматически увеличивает значения поля id на единицу. Но при удалении клиента значение идентификатора не возвращается к освободившемуся значению, а увеличивается дальше. Так же реализовано управление идентификационным номером поручителя. Работникам банка, информация о которых не хранится, присваивается идентификационный номер равный нулю.

36 Для работы приложения клиента необходимо хранить в базе данных логин и пароль работников банка и клиентов банка. Логин клиента банка составляется автоматически из его имени и фамилии, а пароль, вводимый самим клиентом, хешируется в приложении клиенте и уже после этого добавляется в базу. Логин работника банка так же составляется из его имени и фамилии, но добавление его и пароля осуществляется системным администратором базы данных, который единственный имеет доступ к базе данных с помощью менеджера управления, а не через разрабатываемое приложение клиент. Вся остальная информация, хранимая в базе данных, вводится при добавлении нового клиента, поручителя или кредита самим работником банка или клиентов Аудит базы данных кредитной информации Аудит действий, которые может совершать только администратор, а именно удаление информации о клиенте, поручителе, или кредите, а также изменение кредитной информации, информации о счетах и паролях реализовано с помощью триггеров SQL. Так же помощью них реализовано резервное копирование данных перед их изменением в основной таблице. Триггер, срабатывающий при удалении информации о клиенте банка: DROP TRIGGER DeleteClient; CREATE TRIGGER DeleteClient DELETE ON Clients BEGIN DELETE FROM Account WHERE idclient = OLD.id; DELETE FROM Password WHERE idclient = OLD.id; 36

37 INSERT INTO Audit VALUES(0,'SystemAdmin','Администратор','Уделание клиента',old.id,'клиент',old.name+old.lastname,datetime('now')); INSERT INTO oldvalue VALUES(old.id,'Клиент',old.Name,old.Otch,old.LastName,old.Bday,old.Phone,old.Gender,old.SeriesP,old.NumberP,old.PublishedP,old.DateP,old.City,old.Str eet,old.home,old.apartment,old.job, old.jobtitle,old.salary); END; При удалении клиента удаляется вся информация о его счетах, а также его логин и пароль. В таблицу аудита заносится сообщение об удалении системным администратором клиента, т.к. только у него есть такие права. Триггер, срабатывающий при изменении информации о клиенте банка: DROP TRIGGER UpdateClient; CREATE TRIGGER UpdateClient UPDATE ON Clients BEGIN INSERT INTO oldvalue VALUES(old.id,'Клиент',old.Name,old.Otch,old.LastName,old.Bday,old.Phone,old.Gender,old.SeriesP,old.NumberP,old.PublishedP,old.DateP,old.City,old.Str eet,old.home,old.apartment,old.job, old.jobtitle,old.salary); END; При изменении клиента в таблицу старых значений копируются значения, до внесения изменений. Эта информация может пригодится в случае предумышленного изменения данных клиента на неверные, или в случае ошибочного изменения. Запись в таблицу аудита происходит в приложении клиенте. Триггер, срабатывающий при удалении информации о поручителе: 37

38 DROP TRIGGER DeleteGuarantor; CREATE TRIGGER DeleteGuarantor DELETE ON Guarantor BEGIN INSERT INTO Audit VALUES(0,'SystemAdmin','Администратор','Уделание поручителя',old.id,'поручитель',0,datetime('now')); END; Запись об удалении информации о поручителе заносится в таблицу аудита. Триггер, срабатывающий при изменении информации о поручителе: DROP TRIGGER UpdateGuarantor; CREATE TRIGGER UpdateGuarantor UPDATE ON Guarantor BEGIN INSERT INTO oldvalue VALUES(old.id,'Поручитель',old.Name,old.Otch,old.LastName,old.Bday,old.P hone,old.gender,0,0,0,0,old.city,old.street,old.home,old.apartment,old.job, old.jobtitle,old.salary); END; При изменении данных о поручителе так же вся старая информация заносится в таблицу старых значений. По причине того, что в базе данных не хранятся паспортные данные поручителя, в таблицу вместо них заносятся нулевые значения. Триггеры, срабатывающий при удалении информации о кредите или счете: 38

39 DROP TRIGGER DeleteCredit; CREATE TRIGGER DeleteCredit DELETE ON Credit BEGIN INSERT INTO Audit VALUES(0,'SystemAdmin','Администратор','Уделание кредита',old.idclient,'клиент',0,datetime('now')); END; DROP TRIGGER DeleteAccount; CREATE TRIGGER DeleteAccount DELETE ON Account BEGIN INSERT INTO Audit VALUES(0,'SystemAdmin','Администратор','Уделание счета',old.idclient,'клиент',0,datetime('now')); END; Запись об удалении информации заносится в таблицу аудита. Триггер, срабатывающий при изменении информации о кредите или счете: DROP TRIGGER UpdateCredit; CREATE TRIGGER UpdateCredit UPDATE ON Credit BEGIN INSERT INTO Audit VALUES(0,'SystemAdmin','Администратор','Изменение кредита',old.idclient,'клиент',0,datetime('now')); END; 39 DROP TRIGGER UpdateAccount; CREATE TRIGGER UpdateAccount

40 UPDATE ON Credit BEGIN INSERT INTO Audit VALUES(0,'SystemAdmin','Администратор','Изменение счета',old.idclient,'клиент',0,datetime('now')); END; Запись об изменении информации заносится в таблицу аудита. 40

41 Разработка приложения клиента Задачами данного раздела является разработка приложения-клиента для доступа к базе данных кредитной информации на языке С++ с использование инструментария Qt Реализация приложения-клиента Реализованное приложение клиент включает в себя семнадцать классов. Класс окна входа mainwindow. Классы, отвечающие за работу приложения для работника банка: rabotnikbankaform, newclient, findclient, newcredit, findcredit, newguarantor, findguarantor, updateclient, updateguarantor, updatepasswordrabotnik. Классы, отвечающие за работу приложения для клиента: clientform, findcreditclient, findaccount, updatepassword, updateclientclient, paymentcredit. Все запросы к базе данных на языке SQL определены уже в коде приложения клиента, а данные, вводимые пользователем, экранированы, а это значит, злоумышленник не сможет применить метод SQL-инъекций. В приложение клиенте происходит аудит неудачных попыток входа в приложение, действий работника банка при внесении нового клиента, кредита или поручителя, просмотре персональных данных клиента, и изменении данных клиента или поручителя, действий клиента банка при изменении своих данных и совершении оплаты по кредиту. Эта часть аудита производится в приложении клиенте, т.к. именно в нем происходит разделение по ролям и конкретным пользователям. Окно входа включает в себя поля для ввода логина и пароля и три кнопки: вход, очистить и выход (рис. 3.1).

42 42 Рисунок 3.1 Окно входа При нажатии кнопки вход происходит соединение с базой данных, в которой происходит поиск по логину пароля пользователя. После чего считается результат хеширования пароля, введенного пользователем, и сравнивается со значением из базы данных. Если логин или пароль введены неверно, выводится сообщение об ошибке. После третьей неудачной попытки кнопка вход блокируется на 10 минут, а в таблицу аудита заносится сообщение о неудачной попытке входа. Алгоритм работы программы содержится в приложении 4.Полный код приложения клиента на языке С++ с использованием инструментария Qt находится в приложении Вариант приложения для работника банка Работник банка в приложении может выполнять следующие функции: поиск информации о клиенте и ее изменение, добавление информации о новом клиенте, изменение пароля клиента, поиск информации о кредите, добавление информации о новом кредите, поиск информации о поручителе

43 43 и ее изменение, добавление информации о новом поручителе. Внешний вид приложения для работника банка представлен на рисунке 3.2. Рисунок 3.2 Внешний вид приложения для работника банка Поиск информации происходит по имени, фамилии, серии и номеру паспорта клиента (см. приложение 6), т.е. без знания паспортных данных работник банка не имеет доступ ко всем данным клиента. Если клиент не найден, выводится сообщение об ошибке и дается возможность ввести данные заново. На экран выводятся все личные данные о клиенте, номер счет и количество денег на счету, а также номер кредитного договора, процент по кредиту, его статус и остаток по кредиту, и поручителе, если она есть. Пример вывода данных о клиенте находится в приложении 6. При каждом просмотре данных клиента, в таблицу аудита заносится информация о просмотре данных клиента работником банка. Изменение информации клиента начинается с поиска данных клиента, так же по имени, фамилии, серии и номеру паспорта клиента. При каждом изменении данных в таблицу аудита заносится соответствующая информация, а старые данные копируются в специальную таблицу для возможности их восстановления. Добавление информации о новом клиенте происходит в несколько этапов. Первый ввод основной информации о клиенте (см. приложение 6). Если

44 введена не вся информация, то продолжить не удастся. Второй этап ввод номер счета клиента. Автоматически на счету клиента будет нулевой баланс, т.к. работник банка не производит никакие операции с деньгами. Так же если ничего не введено продолжить добавлять клиента не удастся. Третий этап ввод пароля самим клиентом. Пароль должен быть введен два раза, значения должны совпадать. При этом оба введенных значения будут скрыты кружками при выводе на экран. Логин автоматически формируется из имени и фамилии клиента. Информация о действии заносится в таблицу аудита. Изменение пароля клиента начинается с поиска клиента по тем же данным, после чего самим клиентом вводится новое значение пароля, так же, как и при добавлении информации о новом клиенте, два раза. Информация так же закончится в таблицу аудита. Поиск информации о кредите происходит по номеру кредитного договора. На экран выводит фамилия, имя, отчество клиента, его телефон и домашний адрес, статус кредита, остаток по кредиту и процентная ставка, а также, если есть поручитель его фамилия, имя, отчество, и телефон. Пример вывода информации о кредите представлен в приложении 6. В этом случае в таблицу аудита ничего не заносится. Добавление нового кредита происходит так же в несколько этапов. Первый поиск клиента в базе данных по тем же данным, что и до этого. Если клиент не найден, так же выводится сообщение об ошибке и предоставляется возможность ввести данные еще раз. Второй этап ввод основной кредитной информации: номера кредитного договора, процентной ставки, даты выдачи, срока действия, остатка по кредиту, и суммы кредита. Третий этап это поиск поручителя по фамилии, имени, отчеству и номеру телефона, или добавление нового поручителя в базу, если необходимо. Если поручителя нет, то добавление информации о 44

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

46 46 Рисунок 3.3 Внешний вид приложения для клиента банка Изменение информации о себе самим клиентом не требует поиска, на экран сразу же выводится доступные для изменения данные. Пример вывода данных представлен в приложении 4. В таблицу аудита заносится запись о совершенном изменении данных самим клиентом. Для изменения пароля самим пользователем ему необходимо ввести свой старый пароль, а затем два раза ввести новый. При несоответствии старого пароля или несовпадении значений нового пароль изменен не будет. Если пользователь забыл свой старый пароль ему необходимо обратиться в банк для смены его работником банка. Запись об изменении пароля добавляется в таблицу аудита. Поиск информации о кредите происходит по номеру кредитного договора. В отличие от работника банка клиент не вводит номер кредитного договора, а выбирает из выпадающего списка один из номеров кредитных договоров. Это сделано во избежание опечатки клиентом и получения им информации, к которой он не имеет доступа. На экран выводится статус кредита, остаток по кредиту, процентная ставка, а также, если есть поручитель его фамилия, имя, отчество, и телефон. В этом случае в таблицу аудита ничего не заносится.

47 Поиск информации о счете происходит по его номеру. Клиент выбирает из выпадающего списка один из номеров счетов. На экран выводится количество денег на счету. В этом случае в таблицу аудита ничего не заносится. Клиент может совершить платеж по одному из своих кредитов с одного из одних счетов. Он выбирает из выпадающего меню номер чета и номер кредитного договора, и вводит сумму для оплаты (см. приложение 4). Она не должна превышать сумму на выбранном счету и сумму остатка по кредиту. Данная операция реализована с помощью транзакций. Транзакция набор логических операций, который может быть совершен только полностью. Таким образом, если платеж будет прерван на середине, то операция будет полностью отменена. Это поможет избежать ситуаций, в которых деньги со счета клиента были сняты, но не были зачислены для погашения кредита. 47

48 Выводы В данной главе описана разработанная база данных на языке SQL. Описаны основные особенности данных, содержащихся в ней. Так же описано разработанное программное обеспечение для доступа и управления базой данных кредитной информации. Описаны основные возможности работника и клиента банка в приложении. А также реализация аудита, который был определен во второй главе и требований для второго уровня безопасности, определенных в первой главе.

49 49 Заключение Основными задачами бакалаврской работы были реализация базы данных кредитной информации, управляемая СУБД, и приложения клиента для управления базой данных. База данных реализована на языке SQL. Все данные в ней случайны, и необходимы для моделирования работы приложения. Часть данных формируется автоматически перед добавлением новой записи в приложении клиенте. Это логин пользователя, составляемый из имени и фамилии, без пробела, а также идентификационные номера клиента и поручителя, при добавлении записи о новом кредите. Возможностями СУБД реализован аудит действий администратора базы данных, а также резервное копирование старых данных поручителя и клиента перед их изменением. Приложение клиент реализовано на языке С++ с использованием инструментария Qt. В нем реализовано разделение возможностей работы с базой данных для работника и клиента банка. В таблицу аудита происходит запись об основных действиях работника и клиента банка. Работнику банка через приложение доступно просмотр, добавление и изменение данных о клиенте и поручителе, просмотр и добавление новых данных о кредите, а также изменение пароля пользователя. Клиент банка может изменить свои данные, изменить свой пароль, просмотреть информацию о кредитах и счетах, а также совершить платеж по одному из своих кредитов с одного из своих счетов. Реализованные база данных и приложение клиент отвечают всем требования законодательства по защите персональных данных. Реализованы основные методы защиты информации и аудита в базах

50 данных. Таким образом основные задачи были реализованы успешно. 50

51 51 Список использованных источников 1. Атлас З.В. Деньги и кредит (при капитализме и в СССР). М.,1930, с Атре Ш. Структурный подход к организации баз данных М.: Финансы и статистика, с. 3. Боровкова В.А. Основы теории финансов и кредита: учебное пособие / В. А. Боровкова, С. В. Мурашова. - СПб.: ПИТЕР, с. 4. Введение в базы данных. [Электронный ресурс] Объектноориентированные СУБД. URL: (дата последнего обращения г.). 5. Введение в системы баз данных, 8-е издание.: Пер. с англ. М.: Издательский дом "Вильяме", с. 6. ГОСТ Р ИСО/МЭК Методы и средства обеспечения безопасности. Критерии оценки безопасности информационных технологий безопасности. Часть 1. Введение и общая модель. / М.: ИПК Издательство стандартов, Завгородний В.И. Комплексная защита информации в компьютерных системах. [Электронный ресурс] Особенности защиты информации в базах данных. URL: (дата последнего обращения г.). 8. Макс Шлее. Qt 4.8 Профессиональное программирование на C++. СПб.: «БХВ-Петербург», С Малыхина Г.Ф. Управление данными: учебное пособие/ Г.Ф. Малыхина, Н.Г. Полетаева. СПб.: Издательство Политехнического университета, с.

52 10. Постановлением правительства РФ от 1 ноября 2012 года 1119 «Об утверждении требований к защите персональных данных при их обработке в информационных системах персональных данных» 11. Приказ Федеральной службы по техническому и экспортному контролю (ФСТЭК России) от 18 февраля 2013 г. 21 г. Москва "Об утверждении Состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных". 12. Пучкова Д.М. Обзор современных СУБД, веб-серверов, языков написания сценариев. [Электронный ресурс].url: (дата последнего обращения г.). 13. Федеральный закон Российской Федерации от 27 июля 2006 г «О персональных данных». 14. Хайдаров К.А. Введение в системы управления базами данных. [Электронный ресурс] - Лекция 13. Защита информации в базах данных. URL: (дата последнего обращения г.). 15. Шилдт Г. Самоучитель C++. Учебный курс. - СПб. : БХВ - Санкт- Петербург, с. 16. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. М.: Триумф, с. 52

53 53 Приложения Приложение 1. Список мер по обеспечению безопасности персональных данных

54 54

55 55

56 56

57 57

58 58 Приложение 2. Модель базы данных кредитной информации на языке ODL. Interface Client attribute int idclient; attribute string name; attribute string lastname; attribute string Otch; attribute int phone; attribute Date b-day; attribute string gender attribute struct pd int series, int number, string published, int date passport details; attribute struct Addr string city, string street, int home, int apartment homeaddres; attribute int numberexpense; attribute string job; attribute string jobtitle; attribute string salary; relationship set< Account >keep; inverse Account:: belong; relationship set< Credit >take; inverse Credit:: issue; relationship < Password>get; inverse Password:: belong; Interface Guarantor attribute int idguarantor;

59 59 attribute string name; attribute string lastname; attribute string Otch; attribute int phone; attribute string gender attribute struct Addr string city, string street, int home, int apartment homeaddres; attribute string job; attribute string jobtitle; attribute string salary; relationship < Credit > respond; inverse Credit:: save; Interface Account attribute int idclient; attribute int number; attribute int amount relationship <Client> belong; inverse Client::keep; Interface Password attribute int idclient; attribute string login; attribute string password; relationship < Client > belong; inverse Client::get; Interface Credit attribute int idclient;

60 60 attribute int contractnumber ; attribute string type; attribute Date term; attribute Date dateissue; attribute int amount; attribute int idguarantor; attribute int percent; attribute bool status; attribute int residue; attribute int sum; relationship < Client > issue; inverse Client::take; relationship < Guarantor > save; inverse Guarantor::respond;

61 61 Приложение 3. Создание и заполнение базы данных на языке SQL Создание таблиц: CREATE TABLE Clients ( id INTEGER primary key AUTOINCREMENT, Name VARCHAR (30), LastName VARCHAR (30), Otch VARCHAR (30), Bday DATE, Phone VARCHAR (10), Gender CHAR(5), SeriesP INTEGER, NumberP INTEGER, PublishedP VARCHAR (255), DateP DATE, City VARCHAR (20), Street VARCHAR (30), Home INTEGER, Apartment INTEGER, Job VARCHAR (255), JobTitle VARCHAR (255), Salary INTEGER ); CREATE TABLE Guarantor( id INTEGER primary key AUTOINCREMENT, "Name" VARCHAR (30), LastName VARCHAR (30), Otch VARCHAR (30), Bday DATE, Phone VARCHAR (10), Gender VARCHAR (5), City VARCHAR (20), Street VARCHAR (30), Home INTEGER, Apartment INTEGER, Job VARCHAR (255), JobTitle VARCHAR (255), Salary INTEGER ); CREATE TABLE Account( idclient INTEGER References Clients (id), "Number" INTEGER primary key, Amount INTEGER ); CREATE TABLE Password( idclient INTEGER, Login VARCHAR (255) primary key, Password VARCHAR (255) );

62 62 CREATE TABLE Credit( idclient INTEGER References Clients (id), ContractNumber INTEGER primary key, DateIssue DATE, Status INT, idguarantor INTEGER, "Percent" INTEGER, Residue INTEGER, Term INT, "Type" VARCHAR (30), "Sum" INTEGER ); CREATE TABLE Audit ( idwho INTEGER, LoginWho VARCHAR (255), TypeWho VARCHAR (255), [Action] VARCHAR (255), idwith VARCHAR (255), TypeWith VARCHAR (255), LoginWith VARCHAR (255), Date DATE ); CREATE TABLE OldValue ( id INTEGER, Type VARCHAR (30), Name VARCHAR (30), LastName VARCHAR (30), Otch VARCHAR (30), Bday DATE, Phone VARCHAR (10), Gender CHAR (5), SeriesP INTEGER, NumberP INTEGER, PublishedP VARCHAR (255), DateP DATE, City VARCHAR (20), Street VARCHAR (30), Home INTEGER, Apartment INTEGER, Job VARCHAR (255), JobTitle VARCHAR (255), Salary INTEGER ); Заполнение таблиц: INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Alexander','Vladimirovich','Ovsov',' ',' ','Men',4210,507624,'UFMS 134',' ','St. Petersburg','Avangardnaya','11','242','Galereya','Ohrannik','30000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Victor','Anatolevich','Mikhalkov',' ',' ','Men', 9405, ,'UFMS 135',' ','St. Petersburg','Alexandra Matrosova','32','97','Agenstvo Lunnii Svet','Detektiv','45000');

63 INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Nikolai','Alexandrovich','Rostov',' ',' ','Men', 8090, ,'UFMS 135',' ','St. Petersburg','Antonovskaya','93','167','OOO "Polyaris"','Webdizainer','50000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Ruslan','Olegovich','Malevich',' ',' ','Men', 8948, ,'UFMS 56',' ','St. Petersburg','Magdalinskiy','61','30','Centralnaya bolnica 5','Akusher','30000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Alexandra','Alekseyevna','Kulikova',' ',' ','Women', 6748, ,'UFMS 78',' ','St. Petersburg','Marshala Govorova','79','259','Centralnaya bolnica 25','Laborant ','35000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ( 'Maria','Alexandrovna','Vastkina', ' ',' ','Women', 6494,761654,'UFMS 134', ' ','St. Petersburg', 'Michaela Dudina','62','200','Izdatelstvo "Aist"','Izdatel','78000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Olga','Sergeevna','Drygina', ' ',' ','Women',2627,309563,'UFMS 35', ' ','St. Petersburg','Ivana Fomina','68','128','Aleksandrovskii teatr','artist','50000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Sergey','Viktorovich','Gorshochnikov',' ',' ','Men',6902,157421,'UFMS 56',' ','St. Petersburg','Industrial','77','190','Agenstvo "Kuzma"','Malyar','45000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Vadim','Sergeyevich','Novitsky', ' ',' ','Men',1631,516165,'UFMS 35', ' ','St. Petersburg','Irinovsky',38,262,'RJD','Provodnik','30000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Nikolai','Mihaylovich','Lukin', ' ',' ','Men',8909,118733,'UFMS 134', ' ','St. Petersburg','Tchaikovskogo',51,80,'Agenstvo "Absolyut"','Strahovoi agent','67000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Maxim','Nikolaevich','Ivanov', ' ',' ','Men',4263,435625,'UFMS 76', ' ','St. Petersburg','Cherkasova',7,62,'Agenstvo "Kuzma"','Slesar','35000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Anton','Vladimirovich','Petrov', ' ',' ','Men',5600,298172,'UFMS 67', ' ','St. Petersburg','Chernyakhovsky',31,163,'Gostinica Metropol','Porte','40000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Valeria','Victorovna','Chernokrylova', '

64 1987',' ','Women',1584,537232,'UFMS 78', ' ','St. Petersburg','Nab- Obvodnogo k-',52,276,'arhpro','arhitektor','90000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Aleksey','Olegovich','Alekseev', ' ',' ','Men',5889,146641,'UFMS 123', ' ','St. Petersburg','Ordinarnay',83,142,'OAO "Femida"','Yurist','80000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Anastasia','Olegovna','Leonidova', ' ',' ','Women',8322,752550,'UFMS 106', ' ','St. Petersburg','Fanerniy',99,4,'Centralnaya bolnica 3','Nevrolog','50000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Ekaterina','Nikolaevna','Gorohova', ' ',' ','Women',5517,726059,'UFMS 71', ' ','St. Petersburg','Fermskoe',22,221,'Ermitaj','Istorik','35000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Daria','Vladimirovna','Kochergina', ' ',' ','Women',8020,980340,'UFMS 23', ' ','St. Petersburg','Fontanki nab-',23,96,'russkii muzei','restavrator','46000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Denis','Sergeyevich','Belov', ' ',' ','Men',7579,451511,'UFMS 34', ' ','St. Petersburg','Rubinstein',28,124,'Konditerskaya Sever','Povar','75000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Oleg','Anatolevich','Miromov', ' ',' ','Men',3342,361761,'UFMS 45', ' ','St. Petersburg','Gzhatskaya',37,34,'Agenstvo Salma','Perevodchik','52000'); INSERT INTO Clients (Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,Pub lishedp,datep,city,street,home,apartment,job, JobTitle,Salary) VALUES ('Maxim','Alexandrovich','Shilov', ' ',' ','Men',6866,418172,'UFMS 56', ' ','St. Petersburg','Kharchenko',80,14,'LAES','Injener','50000'); INSERT INTO Guarantor VALUES ('Alexander','Anatolevich','Ivanov',' ',' ','Men','St. Petersburg','Irinovsky','11','242','Salon krasoti "Janna"','Parikmaher','30000'); INSERT INTO Guarantor VALUES ('Nikolai','Olegovich','Petrov',' ',' ','Men','St. Petersburg','Cherkasova','51','80',' OAO "Dins"','Menedjer po PR','50000'); INSERT INTO Guarantor VALUES ('Sergey','Alexandrovich','Sidorov',' ',' ','Men','St. Petersburg','Nab. Obvodnogo k.','77','190','oao "Femida"','Ekonomist','65000'); INSERT INTO Guarantor VALUES ('Nikolai','Mihaylovich','Sergeev',' ',' ','Men','St. Petersburg','Rubinstein','93','167','Agentstvo "Northwest" ','Injener konstruktor','45000'); INSERT INTO Guarantor VALUES ( 'Maria','Vladimirovna','Frolova', ' ',' ','Women','St. Petersburg', 'Kharchenko','62','200','Mariinskii teatr','rejisser','60000'); INSERT INTO Guarantor VALUES ('Olga','Olegovna','Konstantinova', '

65 1986',' ','Women','St. Petersburg','Ivana Fomina','68','129','Centralnaya bolnica 42 ','Androlog','40000'); INSERT INTO Guarantor VALUES ('Ruslan','Sergeyevich','Semenov',' ',' ','Men','St. Petersburg','Avangardnaya','61','30','Notarialnaya kontora','notarius','55000'); INSERT INTO Guarantor VALUES ('Victor','Alexandrovich','Palevin', ' ',' ','Men','St. Petersburg','Marshala Govorova',32,97,'OOO "Gasad"','Kopiraiter','35000'); INSERT INTO Guarantor VALUES ('Vadim','Olegovich','Belov', ' ',' ','Men','St. Petersburg','Fanerniy',38,262,'Aleksandrovskii teatr','horeograf','45000'); INSERT INTO Guarantor VALUES ('Alexandra','Nikolaevna','Petrova', ' ',' ','Women','St. Petersburg','Tchaikovskogo',79,259,'Veterinarnaya klinika 43','Veterinar','40000'); INSERT INTO Account VALUES (1,' ',780000); INSERT INTO Account VALUES (2,' ',530000); INSERT INTO Account VALUES (3,' ',250000); INSERT INTO Account VALUES (4,' ',650000); INSERT INTO Account VALUES (5,' ',560000); INSERT INTO Account VALUES (6,' ',470000); INSERT INTO Account VALUES (7,' ',590000); INSERT INTO Account VALUES (8,' ',560000); INSERT INTO Account VALUES (9,' ',490000); INSERT INTO Account VALUES (10,' ',780000); INSERT INTO Account VALUES (11,' ',45000); INSERT INTO Account VALUES (12,' ',100); INSERT INTO Account VALUES (13,' ',1200); INSERT INTO Account VALUES (14,' ',5400); INSERT INTO Account VALUES (15,' ',7800); INSERT INTO Account VALUES (16,' ',7856); INSERT INTO Account VALUES (17,' ',90231); INSERT INTO Account VALUES (18,' ',4532); INSERT INTO Account VALUES (19,' ',5849); INSERT INTO Account VALUES (20,' ',3483); 65

66 66 INSERT INTO Password VALUES (1,'AlexanderOvsov','6c7aed14f92152fd486072c09233c cba'); INSERT INTO Password VALUES (2,'VictorMikhalkov','aec9f133494f8c2a66c ecf ee'); INSERT INTO Password VALUES (3,'NikolaiRostov','59cec81ae60ce63b af39fcda6e708036'); INSERT INTO Password VALUES (4,'RuslanMalevich','c452de9f1148e0df10d9e450e8fc142b690b650c'); INSERT INTO Password VALUES (5,'AlexandraKulikova','21210d94dd0120fb1661e288f9215c d97'); INSERT INTO Password VALUES (6,'MariaVastkina','34284e4596d5d9395f7c94e66668cc f4d'); INSERT INTO Password VALUES (7,'OlgaDrygina', 'b32b47ae8ba0d520e8741e84b5a1be8ab1070c76'); INSERT INTO Password VALUES (8,'SergeyGorshochnikov','ad64ad943774ef8d9b26e53f6b614ba4cbbe7b56') ; INSERT INTO Password VALUES (9,'VadimNovitsky','2260b4274a122cb222e0c0285b9f3e26eb056110'); INSERT INTO Password VALUES (10,'NikolaiLukin','36de75741a67b2fcd58ab2000aa ee0b67'); INSERT INTO Password VALUES (11,'MaximIvanov','654f8763abfa9a496aeb0a4651e7a75ea27d4903'); INSERT INTO Password VALUES (12,'AntonPetrov','396ad3d11eecc591aa3b ede0ca61b22af'); INSERT INTO Password VALUES (13,'ValeriaChernokrylova','aa5a42e9ed821be3beb7765ec4b0aae91652ccea '); INSERT INTO Password VALUES (14,'AlekseyAlekseev','cf6c57a0394baab4b5d6987a65ed20c4ec067838'); INSERT INTO Password VALUES (15,'AnastasiaLeonidova','28c8ec4bc108e977e5315aaaf3b602aafffcf65f') ; INSERT INTO Password VALUES (16,'EkaterinaGorohova','8383b2ad7d7e4e f97d9fc00ff6142'); INSERT INTO Password VALUES (17,'DariaKochergina','87eaa88e6b10cb26460f149f888ce253045de0c7'); INSERT INTO Password VALUES (18,'DenisBelov','c301a066b00b5e6b74c97502d43a5394e9de576c'); INSERT INTO Password VALUES (19,'OlegMiromov','087888bd b0c176f3e e7ff9944'); INSERT INTO Password VALUES (20,'MaximShilov','f246f1f544ae797bcadff2d719f0a50d7ef26490'); INSERT INTO Password VALUES (0,'MarinaIvanova','baa46e05a04a69591bef7100d1b7bce532512b0a'); INSERT INTO Password VALUES (0,'MaximPetrov','6d067216db9b4229b0f b22cd436c2f2fc'); INSERT INTO Password VALUES (0,'AleksandraSidorova','318583a7b209a08c3c9005d08a9fc663d8cf576'); INSERT INTO Password VALUES (0,'AlekseyMartinov','1be6bc7167b85dab7b6a796ef731aa62e8d9e97e');

67 67 INSERT INTO Password VALUES (0,'ValeyriyLeonov','e37140ab01d5ab757c0b26ec1dbadc4e3033d2db'); INSERT INTO Credit VALUES (1,'970743',' ','1','2','15','90000','12','Potrebitelskii',100000); INSERT INTO Credit VALUES (2,'723932',' ',1,'1','15','158000','12','Potrebitelskii',200000); INSERT INTO Credit VALUES (3,'923939',' ',1,0,'20','75000','12','Potrebitelskii',150000); INSERT INTO Credit VALUES (4,'684589',' ',1,4,15,240000,24,'Potrebitelskii',350000); INSERT INTO Credit VALUES (5,'982501',' ',1,0,15,20000,6,'Potrebitelskii',35000); INSERT INTO Credit VALUES (6,'685449',' ',1,0,18,40000,8,'Potrebitelskii',50000); INSERT INTO Credit VALUES (7,'158850',' ',1,10,19,55000,12,'Potrebitelskii',100000); INSERT INTO Credit VALUES (8,402133, ' ',1,0,20,300000,24,'Potrebitelskii',370000); INSERT INTO Credit VALUES (9,323951, ' ',1,9,17,30000,6,'Potrebitelskii',45000); INSERT INTO Credit VALUES (10,718996, ' ',1,3,13,90000,12,'Potrebitelskii',120000); INSERT INTO Credit VALUES (11,404992, ' ',1,6,16,30000,8,'Potrebitelskii',50000); INSERT INTO Credit VALUES (12,861636, ' ',1,0,15,89000,18,'Potrebitelskii',150000); INSERT INTO Credit VALUES (13,762113, ' ',1,0,18,200000,24,'Potrebitelskii',400000); INSERT INTO Credit VALUES (14,815787, ' ',1,0,15,237000,24,'Potrebitelskii',400000); INSERT INTO Credit VALUES (15,833121, ' ',1,8,17,145000,12,'Potrebitelskii',200000); INSERT INTO Credit VALUES (16,709587, ' ',1,0,20,95000,18,'Potrebitelskii',150000); INSERT INTO Credit VALUES (17,137385, ' ',1,0,15,17000,6,'Potrebitelskii',37000); INSERT INTO Credit VALUES (18,417085, ' ',1,0,19,30000,8,'Potrebitelskii',50000); INSERT INTO Credit VALUES (19,105474, ' ',1,5,18,24000,12,'Potrebitelskii',45000); INSERT INTO Credit VALUES (20,117667,' ',1,7,16,100000,18,'Potrebitelskii',120000);

68 68 Приложение 4 Алгоритм работы приложения клиента Старт Получение логина и пароля пользователя Сравнение со значениями в базе Вход от имени конкретного пользователя Выбор действия пользователем Отправка SQLзапроса базе данных Получение ответа от базы данных Вывод информации пользователю Завершение работы докум. Подпись Дата Выполнил Чистякова Проверил Малыхина Блок-схема алгоритма работы приложения клиента ВКРБ.ИИТ ПЗ Лит. Лист Листов 1 1 СПбПУ

69 69 Приложение 5. Код приложения клиента на языке С++ с использование инструментария Qt Clientform.h #ifndef CLIENTFORM_H #define CLIENTFORM_H #include <QMainWindow> #include "mainwindow.h" #include "findcreditclient.h" #include "findaccount.h" #include "updateclientclient.h" #include "updatepassword.h" #include "paymentcredit.h" namespace Ui class ClientForm; //Класс создания основного окна приложения для клиента банка class ClientForm : public QMainWindow Q_OBJECT public: explicit ClientForm(QString Login, QString idclient, QWidget *parent = 0); ~ClientForm(); QString idclienta; private slots: void on_action_6_triggered(); void on_action_7_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); void on_pushbutton_3_clicked(); void on_pushbutton_4_clicked(); void on_pushbutton_5_clicked(); private: Ui::ClientForm *ui; ; #endif // CLIENTFORM_H Clientform.cpp #include "clientform.h" #include "ui_clientform.h" #include "updatepassword.h"

70 70 ClientForm::ClientForm(QString Login, QString idclient, QWidget *parent) : QMainWindow(parent), ui(new Ui::ClientForm) ui->setupui(this); idclienta=idclient; qdebug()<<idclienta; ui->label->settext("здравствуйте, "+Login); //приветствие клиента по имени ClientForm::~ClientForm() delete ui; //Функция смены пользователя void ClientForm::on_action_6_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void ClientForm::on_action_7_triggered() close(); //Функция поиска кредитов, перед выводом информации. В случаи отсутствия кредитов выводится оповещение void ClientForm::on_pushButton_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString b = "Select* From Credit WHERE idclient="; query.exec(b+"'"+idclienta+"'"); query.next(); if(query.value(query.record().indexof("contractnumber")).tostring().isempty() ) QMessageBox msgbox; msgbox.settext("у вас нет кредитов."); msgbox.exec(); else FindCreditClient* FCC = new FindCreditClient(idClienta); FCC->show(); this->close(); //Функция поиска счетов, перед выводом информации. В случаи отсутствия счетов выводится оповещение

71 71 void ClientForm::on_pushButton_2_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString b = "Select Number From Account WHERE idclient="; query.exec(b+"'"+idclienta+"'"); query.next(); if(query.value(query.record().indexof("number")).tostring().isempty()) QMessageBox msgbox; msgbox.settext("у вас нет счетов."); msgbox.exec(); else FindAccount* FA = new FindAccount(idClienta); FA->show(); this->close(); //Функция возврата в главнле меню void ClientForm::on_pushButton_3_clicked() UpDateClientClient* UDCC = new UpDateClientClient(idClienta); UDCC->show(); this->close(); //Функция перехода к изменению пароля void ClientForm::on_pushButton_4_clicked() UpDatePassword* UDP = new UpDatePassword(idClienta); UDP->show(); this->close(); //Функция перехода к оплате кредита void ClientForm::on_pushButton_5_clicked() PaymentCredit* PC = new PaymentCredit(idClienta); PC->show(); this->close(); findaccount.h #ifndef FINDACCOUNT_H #define FINDACCOUNT_H #include <QMainWindow> #include "clientform.h" #include "mainwindow.h" namespace Ui class FindAccount; //Класс поиска информации о счете клиентом банка class FindAccount : public QMainWindow Q_OBJECT

72 72 public: explicit FindAccount(QString idclient, QWidget *parent = 0); ~FindAccount(); QLineEdit* LE; QString idclienta,name; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); private: Ui::FindAccount *ui; ; #endif // FINDACCOUNT_H findaccount.cpp #include "findaccount.h" #include "ui_findaccount.h" FindAccount::FindAccount(QString idclient, QWidget *parent) : QMainWindow(parent), ui(new Ui::FindAccount) //Поиск всех счетов пользователя и вывод их номеров ui->setupui(this); idclienta=idclient; qdebug()<<idclienta; QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select* From Clients WHERE id="; query.exec(a+"'"+idclient+"'"); query.next(); Name = query.value(query.record().indexof("name")).tostring(); QString b = "Select Number From Account WHERE idclient="; query.exec(b+"'"+idclient+"'"); while (query.next()) QString number = query.value(query.record().indexof("number")).tostring(); ui->combobox->additem(number); FindAccount::~FindAccount()

73 73 delete ui; void FindAccount::on_action_triggered() ClientForm* cliform = new ClientForm(Name,idClienta); cliform->show(); this->close(); void FindAccount::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void FindAccount::on_action_3_triggered() close(); void FindAccount::on_pushButton_clicked() on_action_triggered(); //Функция вывода информации о конкретном счете void FindAccount::on_pushButton_2_clicked() ui->label->settext("информация о счете"); ui->label->repaint(); ui->combobox->hide(); LE = new QLineEdit(this); LE->setGeometry(0,60,391,20); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString AccountData; QString Number = ui->combobox->currenttext(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString b = "Select Amount From Account WHERE Number="; query.exec(b+"'"+number+"'"); query.next(); AccountData= "\nсумма на счету:"+query.value(query.record().indexof("amount")).tostring(); LE->setText(AccountData); LE->show(); ui->pushbutton_2->hide(); findclient.h #ifndef FINDCLIENT_H #define FINDCLIENT_H #include <QMainWindow> #include <rabotnikbankaform.h>

74 74 #include "mainwindow.h" #include <QTextEdit> namespace Ui class FindClient; //Класс поиска клиента работником банка class FindClient : public QMainWindow Q_OBJECT public: explicit FindClient(QString Login, QWidget *parent = 0); ~FindClient(); QString LoginRabotnika; private slots: void on_pushbutton_clicked(); void on_action_triggered(); void on_action_3_triggered(); void on_action_2_triggered(); void on_pushbutton_2_clicked(); private: Ui::FindClient *ui; ; #endif // FINDCLIENT_H findclient.cpp #include "findclient.h" #include "ui_findclient.h" FindClient::FindClient(QString Login,QWidget *parent) : QMainWindow(parent), ui(new Ui::FindClient) ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя");//вывод текста в фоновом режиме ui->lineedit_2->setplaceholdertext("фамилия"); ui->lineedit_3->setplaceholdertext("серия"); ui->lineedit_4->setplaceholdertext("номер"); FindClient::~FindClient() delete ui; //Функция возвращения к основному меню работника банка void FindClient::on_pushButton_clicked() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close();

75 75 void FindClient::on_action_triggered() on_pushbutton_clicked(); void FindClient::on_action_3_triggered() close(); //Функция смены пользователя void FindClient::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); //Функция вывода информации о клиенте void FindClient::on_pushButton_2_clicked() ui->label->hide(); QTextEdit* Infa = new QTextEdit(this); QTextEdit* Adccount = new QTextEdit(this); QTextEdit* Credit = new QTextEdit(this); Adccount->setGeometry(ui->lineEdit->geometry()); Infa->setGeometry(ui->lineEdit_2->geometry()); Credit->setGeometry(ui->lineEdit_3->geometry()); Infa->setFixedHeight(100); Adccount->setFixedHeight(40); Credit->setFixedHeight(120); Infa->show(); Adccount->show(); Credit->show(); ui->lineedit->hide(); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->lineedit_4->hide(); ui->pushbutton_2->hide(); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString idclient,accountdata, ClientDate, CreditDate, GuarantorDate, idguarantor,statuscredit; int Status; QString Name = ui->lineedit->text(); QString Family = ui->lineedit_2->text(); QString Series = ui->lineedit_3->text(); QString Number = ui->lineedit_4->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select* From Clients WHERE Name="; query.exec(a+"'"+name+"' AND LastName="+"'"+Family+"' AND SeriesP="+"'"+Series+"' AND NumberP="+"'"+Number+"'"); query.next(); idclient = query.value(query.record().indexof("id")).tostring(); //Проверка наличия клиента if(idclient.isnull()) QMessageBox msgbox; msgbox.settext("клиент не найден.\nпопробуйте еще раз."); msgbox.exec(); FindClient* FC = new FindClient(LoginRabotnika);

76 76 FC->show(); this->close(); ClientDate = "\nимя:"+query.value(query.record().indexof("name")).tostring()+ "\nотчество:"+query.value(query.record().indexof("otch")).tostring()+ "\nфамилия:"+query.value(query.record().indexof("lastname")).tostring()+ "\nдата рождения:"+query.value(query.record().indexof("bday")).tostring()+ "\nтелефон:"+query.value(query.record().indexof("phone")).tostring()+ "\nсерия паспорта:"+query.value(query.record().indexof("seriesp")).tostring()+ "\nномер паспорта:"+query.value(query.record().indexof("numberp")).tostring()+ "\nкем и когда выдан:"+query.value(query.record().indexof("publishedp")).tostring()+ " "+query.value(query.record().indexof("datep")).tostring()+ "\nадрес проживания: г."+query.value(query.record().indexof("city")).tostring()+ " ул."+query.value(query.record().indexof("street")).tostring()+ " д."+query.value(query.record().indexof("home")).tostring()+ " кв. "+query.value(query.record().indexof("apartment")).tostring()+ "\nместо работы:"+query.value(query.record().indexof("job")).tostring()+ "\nдолжность:"+query.value(query.record().indexof("jobtitle")).tostring()+ "\nзарплата:"+query.value(query.record().indexof("salary")).tostring(); QString b = "Select* From Account WHERE idclient="; query.exec(b+"'"+idclient+"'"); query.next(); AccountData= "\nномер счета:"+query.value(query.record().indexof("number")).tostring()+ "\nсумма на счету:"+query.value(query.record().indexof("amount")).tostring(); QString c = "Select* From Credit WHERE idclient="; query.exec(c+"'"+idclient+"'"); while (query.next()) Status = query.value(query.record().indexof("status")).toint(); if(status==1) StatusCredit="Активен"; else StatusCredit="Неактивен"; idguarantor = query.value(query.record().indexof("idguarantor")).tostring(); CreditDate ="\nномер кредитного договора:"+query.value(query.record().indexof("contractnumber")).tostring()+ "\nстатус:"+statuscredit+"\nостаток:"+query.value(query.record().indexof("res idue")).tostring()+ "\nпроцент:"+query.value(query.record().indexof("percent")).tostring()+"\nинф ормация о поручителе:"; if(idguarantor!=0) QString b = "Select Name,LastName,Otch,Bday, Phone From Guarantor WHERE id="; query.exec(b+"'"+idguarantor+"'"); query.next();

77 77 GuarantorDate = "\nимя:"+query.value(query.record().indexof("name")).tostring()+ "\nотчество:"+query.value(query.record().indexof("otch")).tostring()+ "\nфамилия:"+query.value(query.record().indexof("lastname")).tostring()+ "\nдата рождения:"+query.value(query.record().indexof("bday")).tostring()+ "\nтелефон:"+query.value(query.record().indexof("phone")).tostring(); else GuarantorDate="Поручителя нет"; CreditDate=CreditDate+GuarantorDate; QString Login = Name+Family; QString d = "INSERT INTO Audit VALUES('"; query.exec(d+"0','" +LoginRabotnika+ "','Работник','Просмотр данных пользователя','"+idclient+"','клиент','"+login+"',datetime('now'))"); Infa->setText("Общая информация:"+clientdate); Adccount->setText("Номера счета:"+accountdata); Credit->setText("Информация о кредитах:"+creditdate); findcredit.h #ifndef FINDCREDIT_H #define FINDCREDIT_H #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" namespace Ui class FindCredit; //Класс поиска кредита работником банка class FindCredit : public QMainWindow Q_OBJECT public: explicit FindCredit(QString Login, QWidget *parent = 0); ~FindCredit(); QString LoginRabotnika; private slots: void on_action_triggered(); void on_action_3_triggered(); void on_action_4_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); private: Ui::FindCredit *ui; ; #endif // FINDCREDIT_H

78 78 findcredit.cpp #include "findcredit.h" #include "ui_findcredit.h" FindCredit::FindCredit(QString Login,QWidget *parent) : QMainWindow(parent), ui(new Ui::FindCredit) ui->setupui(this); ui->textedit->hide(); LoginRabotnika=Login; FindCredit::~FindCredit() delete ui; //Функция возвращения к основному меню работника банка void FindCredit::on_action_triggered() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close(); //Функция смены пользователя void FindCredit::on_action_3_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void FindCredit::on_action_4_triggered() close(); void FindCredit::on_pushButton_clicked() on_action_triggered(); //Функция вывода информации о кредите void FindCredit::on_pushButton_2_clicked() QString idguarantor,reside, Percent, GuarantorDate, StatusCredit,idClient,ClientDate; int Status; QString ContractNumber = ui->lineedit->text(); qdebug()<<contractnumber; QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select * From Credit WHERE ContractNumber='"; query.exec(a+contractnumber+"'"); query.next();

79 qdebug()<<a+contractnumber; idclient=query.value(query.record().indexof("idclient")).tostring(); Status = query.value(query.record().indexof("status")).toint(); if(status==1) StatusCredit="Активен"; else StatusCredit="Неактивен"; idguarantor = query.value(query.record().indexof("idguarantor")).tostring(); Reside = query.value(query.record().indexof("residue")).tostring(); Percent = query.value(query.record().indexof("percent")).tostring(); if(idguarantor!=0) QString b = "Select Name,LastName,Otch,Bday, Phone From Guarantor WHERE id="; query.exec(b+"'"+idguarantor+"'"); query.next(); GuarantorDate = "\nимя:"+query.value(query.record().indexof("name")).tostring()+ "\nотчество:"+query.value(query.record().indexof("otch")).tostring()+ "\nфамилия:"+query.value(query.record().indexof("lastname")).tostring()+ "\nдата рождения:"+query.value(query.record().indexof("bday")).tostring()+ "\nтелефон:"+query.value(query.record().indexof("phone")).tostring(); else GuarantorDate="Поручителя нет"; 79 QString c = "Select Name,Otch,LastName,Phone From Clients WHERE id="; query.exec(c+"'"+idclient+"'"); query.next(); ClientDate = "\nимя:"+query.value(query.record().indexof("name")).tostring()+ "\nотчество:"+query.value(query.record().indexof("otch")).tostring()+ "\nфамилия:"+query.value(query.record().indexof("lastname")).tostring()+ "\nтелефон:"+query.value(query.record().indexof("phone")).tostring(); ui->label->settext("информация о кредите"); ui->lineedit->hide(); ui->textedit->settext("данные клиента:"+clientdate+"\nстатус:"+statuscredit+"\nостаток:"+reside+"\nпроцент: "+Percent+"\nДанные поручителя:"+guarantordate); ui->textedit->show(); ui->label->repaint(); ui->pushbutton_2->hide(); findcreditclient.h #ifndef FINDCREDITCLIENT_H #define FINDCREDITCLIENT_H #include <QMainWindow> #include "clientform.h" #include "mainwindow.h" #include <QTextEdit>

80 80 namespace Ui class FindCreditClient; //Класс поиска информации о кредите клиентом банка class FindCreditClient : public QMainWindow Q_OBJECT public: explicit FindCreditClient(QString idclient, QWidget *parent = 0); ~FindCreditClient(); QTextEdit* TE; QString idclienta, Name; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); private: Ui::FindCreditClient *ui; ; #endif // FINDCREDITCLIENT_H findcreditclient.cpp #include "findcreditclient.h" #include "ui_findcreditclient.h" FindCreditClient::FindCreditClient(QString idclient, QWidget *parent) : QMainWindow(parent), ui(new Ui::FindCreditClient) //Поиск информации о кредитах пользователя ui->setupui(this); idclienta=idclient; QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select* From Clients WHERE id="; query.exec(a+"'"+idclient+"'"); query.next(); Name = query.value(query.record().indexof("name")).tostring(); QString b = "Select* From Credit WHERE idclient="; query.exec(b+"'"+idclient+"'"); while (query.next()) QString number = query.value(query.record().indexof("contractnumber")).tostring(); ui->combobox->additem(number);

81 81 FindCreditClient::~FindCreditClient() delete ui; //Функция возвращения к основному меню клиента банка void FindCreditClient::on_action_triggered() ClientForm* cliform = new ClientForm(Name,idClienta); cliform->show(); this->close(); //Функция смены пользователя void FindCreditClient::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void FindCreditClient::on_action_3_triggered() close(); void FindCreditClient::on_pushButton_clicked() on_action_triggered(); //Функция вывода информации о конкретном кредите void FindCreditClient::on_pushButton_2_clicked() ui->label->settext("информация о кредите"); ui->label->repaint(); ui->combobox->hide(); TE = new QTextEdit(this); ui->pushbutton_2->hide(); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString idguarantor,reside, Percent, GuarantorDate, StatusCredit; int Status,id; QString ContractNumber = ui->combobox->currenttext(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select* From Credit WHERE ContractNumber="; query.exec(a+"'"+contractnumber+"'"); query.next(); Status = query.value(query.record().indexof("status")).toint(); if(status==1) StatusCredit="Активен"; else StatusCredit="Неактивен"; id= query.value(query.record().indexof("idguarantor")).toint(); idguarantor = query.value(query.record().indexof("idguarantor")).tostring(); Reside = query.value(query.record().indexof("residue")).tostring(); Percent = query.value(query.record().indexof("percent")).tostring(); qdebug()<<idguarantor; if(id!=0)

82 82 QString b = "Select Name,LastName,Otch, Phone From Guarantor WHERE id="; query.exec(b+"'"+idguarantor+"'"); query.next(); GuarantorDate = "\nимя:"+query.value(query.record().indexof("name")).tostring()+ "\nотчество:"+query.value(query.record().indexof("otch")).tostring()+ "\nфамилия:"+query.value(query.record().indexof("lastname")).tostring()+ "\nтелефон:"+query.value(query.record().indexof("phone")).tostring(); else GuarantorDate="Поручителя нет"; TE->setGeometry(0,60,391,100); TE- >settext("статус:"+statuscredit+"\nостаток:"+reside+"\nпроцент:"+percent+"\nд анные поручителя:"+guarantordate);; TE->show(); findguarantor.h #ifndef FINDGUARANTOR_H #define FINDGUARANTOR_H #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" namespace Ui class FindGuarantor; //Класс поиска информации о поручителе работником банка class FindGuarantor : public QMainWindow Q_OBJECT public: explicit FindGuarantor(QString Login,QWidget *parent = 0); ~FindGuarantor(); QString LoginRabotnika; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); private: Ui::FindGuarantor *ui; ; #endif // FINDGUARANTOR_H findguarantor.cpp

83 83 #include "findguarantor.h" #include "ui_findguarantor.h" FindGuarantor::FindGuarantor(QString Login, QWidget *parent) : QMainWindow(parent), ui(new Ui::FindGuarantor) ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя");//вывод текста в фоновом режиме ui->lineedit_6->setplaceholdertext("отчество"); ui->lineedit_7->setplaceholdertext("фамилия"); ui->lineedit_8->setplaceholdertext("телефон"); FindGuarantor::~FindGuarantor() delete ui; //Функция возвращения к основному меню работника банка void FindGuarantor::on_action_triggered() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close(); //Функция для входа от имени нового пользователя void FindGuarantor::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void FindGuarantor::on_action_3_triggered() close(); void FindGuarantor::on_pushButton_clicked() on_action_triggered(); //Функция вывода информации о поручителе void FindGuarantor::on_pushButton_2_clicked() ui->label->hide(); QTextEdit* Infa = new QTextEdit(this); Infa->setGeometry(ui->lineEdit->geometry()); Infa->setFixedHeight(100); Infa->setFixedWidth(300); Infa->show(); ui->lineedit->hide(); ui->lineedit_6->hide(); ui->lineedit_7->hide(); ui->lineedit_8->hide(); ui->pushbutton_2->hide(); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString GuarantorDate; QString Name = ui->lineedit->text(); QString Otch = ui->lineedit_6->text();

84 84 QString Family = ui->lineedit_7->text(); QString Phone = ui->lineedit_8->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select* From Guarantor WHERE Name="; query.exec(a+"'"+name+"' AND Otch="+"'"+Otch+"' AND LastName="+"'"+Family+"' AND Phone="+"'"+Phone+"'"); query.next(); QString check = query.value(query.record().indexof("name")).tostring(); if(check.isnull()) QMessageBox msgbox; msgbox.settext("поручитель не найден.\nпопробуйте еще раз."); msgbox.exec(); FindGuarantor* FG = new FindGuarantor(LoginRabotnika); FG->show(); this->close(); GuarantorDate = "\nимя:"+query.value(query.record().indexof("name")).tostring()+ "\nотчество:"+query.value(query.record().indexof("otch")).tostring()+ "\nфамилия:"+query.value(query.record().indexof("lastname")).tostring()+ "\nдата рождения:"+query.value(query.record().indexof("bday")).tostring()+ "\nтелефон:"+query.value(query.record().indexof("phone")).tostring()+ "\nадрес проживания: г."+query.value(query.record().indexof("city")).tostring()+ " ул."+query.value(query.record().indexof("street")).tostring()+ " д."+query.value(query.record().indexof("home")).tostring()+ " кв. "+query.value(query.record().indexof("apartment")).tostring()+ "\nместо работы:"+query.value(query.record().indexof("job")).tostring()+ "\nдолжность:"+query.value(query.record().indexof("jobtitle")).tostring()+ "\nзарплата:"+query.value(query.record().indexof("salary")).tostring(); Infa->setText("Общая информация:"+guarantordate); mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLineEdit> #include <rabotnikbankaform.h> #include <clientform.h> #include <QCryptographicHash> #include <QtSql/QtSql> #include <iostream> #include <qdebug.h>

85 85 namespace Ui class MainWindow; //Класс окна входа class MainWindow : public QMainWindow Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); int CountPasswordError; private slots: void on_lineedit_2_textedited(const QString &arg1); void on_lineedit_textedited(const QString &arg1); void on_lineedit_3_textedited(const QString &arg1); void on_lineedit_4_textedited(const QString &arg1); void on_pushbutton_2_clicked(); void on_pushbutton_clicked(); void on_pushbutton_3_clicked(); void timer(); private: Ui::MainWindow *ui; ; #endif // MAINWINDOW_H mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) ui->setupui(this); CountPasswordError=0; MainWindow::~MainWindow() delete ui; void MainWindow::on_lineEdit_4_textEdited(const QString &arg1) ui->lineedit_4->setechomode(qlineedit::password); void MainWindow::on_pushButton_2_clicked()

86 86 ui->lineedit_3->clear(); ui->lineedit_4->clear(); void MainWindow::on_pushButton_clicked() close(); //Функция сравнения введенных логина и пароля с теми, что хранятся в базе void MainWindow::on_pushButton_3_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString Password,Type,idClienta; int idclient; QString LoginPolz = ui->lineedit_3->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select Password From Password WHERE Login="; query.exec(a+"'"+loginpolz+"'"); query.next(); Password = query.value(query.record().indexof("password")).tostring(); //QSqlQuery query; QString b = "Select idclient From Password WHERE Login="; query.exec(b+"'"+loginpolz+"'"); query.next(); idclient = query.value(query.record().indexof("idclient")).toint(); idclienta = query.value(query.record().indexof("idclient")).tostring(); if(idclient==0)type="работник"; else Type="Клиент"; QCryptographicHash* hash; QString PasswordPol = ui->lineedit_4->text(); QByteArray result = hash- >hash(passwordpol.tolatin1(),qcryptographichash::sha1); QString resultat = result.tohex(); if(password==resultat) //Вход работника банка if(idclient==0) RabotnikBankaForm* rabform = new RabotnikBankaForm(LoginPolz); rabform->show(); this->close(); else //Вход клиента банка QSqlQuery query; QString a = "Select Name From Clients WHERE id="; query.exec(a+idclienta); query.next(); QString NameClient = query.value(query.record().indexof("name")).tostring(); qdebug()<<nameclient; ClientForm* cliform = new ClientForm(NameClient,idClienta); cliform->show();

87 this->close(); else CountPasswordError++; if(countpassworderror!=3) QMessageBox msgbox; msgbox.settext("неверный логин или пароль. Попробуйте еще раз"); msgbox.exec(); ui->lineedit_3->clear(); ui->lineedit_4->clear(); if(countpassworderror==3) QMessageBox msgbox; msgbox.settext("неверный логин или пароль.превышено количество попыток входа в приложение"); msgbox.exec(); ui->lineedit_3->clear(); ui->lineedit_4->clear(); CountPasswordError=0; ui->pushbutton_3->setenabled(false); QTimer::singleShot(200000, this, SLOT(timer())); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "INSERT INTO Audit VALUES('"; query.exec(a+idclienta+ "','" +LoginPolz+ "','" +Type+ "','Превышение количества попыток входа','0','0','0',datetime('now'))"); 87 void MainWindow::timer() ui->pushbutton_3->setenabled(true); newclient.h #ifndef NEWCLIENT_H #define NEWCLIENT_H #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" #include <QPushButton> #include <QCryptographicHash> namespace Ui class NewClient; //Класс добавления нового клиента работником банка class NewClient : public QMainWindow Q_OBJECT public: explicit NewClient(QString Login, QWidget *parent = 0);

88 88 ~NewClient(); void newpassword(); QString idclient,name,family, LoginRabotnika; QPushButton* next; QPushButton* nextnext; void newaccount(); private slots: void on_pushbutton_clicked(); void on_action_triggered(); void on_action_2_triggered(); void on_pushbutton_2_clicked(); void on_next_clicked(); void on_nextnext_clicked(); void on_action_3_triggered(); private: Ui::NewClient *ui; ; #endif // NEWCLIENT_H newclient.cpp #include "newclient.h" #include "ui_newclient.h" NewClient::NewClient(QString Login, QWidget *parent) : QMainWindow(parent), ui(new Ui::NewClient) ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя"); ui->lineedit_2->setplaceholdertext("отчество"); ui->lineedit_3->setplaceholdertext("фамилия"); ui->lineedit_4->setplaceholdertext("дата рождения"); ui->lineedit_5->setplaceholdertext("номер телефона"); ui->lineedit_6->setplaceholdertext("серия паспорта"); ui->lineedit_7->setplaceholdertext("номер паспорта"); ui->lineedit_8->setplaceholdertext("кем выдан"); ui->lineedit_9->setplaceholdertext("когда выдан"); ui->lineedit_10->setplaceholdertext("город проживания"); ui->lineedit_11->setplaceholdertext("улица"); ui->lineedit_12->setplaceholdertext("дом"); ui->lineedit_13->setplaceholdertext("квартира"); ui->lineedit_14->setplaceholdertext("место работы"); ui->lineedit_15->setplaceholdertext("должность"); ui->lineedit_16->setplaceholdertext("зп"); ui->lineedit_17->setplaceholdertext("пол"); next = new QPushButton("Далее",this); next->setgeometry(610,312,111,23); connect(next,signal(clicked()),this,slot(on_next_clicked())); next->hide(); nextnext = new QPushButton("Далее",this); nextnext->setgeometry(610,312,111,23); connect(nextnext,signal(clicked()),this,slot(on_nextnext_clicked()));

89 89 nextnext->hide(); NewClient::~NewClient() delete ui; //Функция возврата к основному меню работника void NewClient::on_pushButton_clicked() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close(); //Функция смены пользователя void NewClient::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void NewClient::on_pushButton_2_clicked() //Проверка ввода всех данных клиента if(ui->lineedit->text().isempty() ui->lineedit_2->text().isempty() ui- >lineedit_3->text().isempty() ui->lineedit_4->text().isempty() ui->lineedit_5- >text().isempty() ui->lineedit_10->text().isempty() ui->lineedit_11- >text().isempty() ui->lineedit_12->text().isempty() ui->lineedit_13- >text().isempty() ui->lineedit_14->text().isempty() ui->lineedit_15- >text().isempty() ui->lineedit_16->text().isempty() ui->lineedit_6- >text().isempty() ui->lineedit_7->text().isempty() ui->lineedit_8- >text().isempty() ui->lineedit_9->text().isempty() ui->lineedit_17- >text().isempty()) QMessageBox msgbox; msgbox.settext("введены не все данные.\nпопробуйте еще раз."); msgbox.exec(); else QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "INSERT INTO Clients(Name,Otch,LastName,Bday,Phone,Gender,SeriesP,NumberP,PublishedP,DateP,City,Street,Home,Apartment,Job, JobTitle,Salary) VALUES ('"; query.exec(a+ui->lineedit->text()+"','"+ ui->lineedit_2->text()+"','"+ ui->lineedit_3->text()+"','"+ ui->lineedit_4->text()+"','"+ ui->lineedit_5->text()+"','"+ ui->lineedit_17->text()+"','"+ ui->lineedit_6->text()+"','"+ ui->lineedit_7->text()+"','"+ ui->lineedit_8->text()+"','"+

90 ui->lineedit_9->text()+"','"+ ui->lineedit_10->text()+"','"+ ui->lineedit_11->text()+"','"+ ui->lineedit_12->text()+"','"+ ui->lineedit_13->text()+"','"+ ui->lineedit_14->text()+"','"+ ui->lineedit_15->text()+"','"+ ui->lineedit_16->text()+"')"); query.next(); QString b = "Select id From Clients WHERE Name="; query.exec(b+"'"+ui->lineedit->text()+"' AND LastName="+"'"+ui- >lineedit_3->text()+"' AND SeriesP="+"'"+ui->lineEdit_6->text()+"' AND NumberP="+"'"+ui->lineEdit_7->text()+"'"); query.next(); idclient = query.value(query.record().indexof("id")).tostring(); Name = ui->lineedit_2->text(); Family = ui->lineedit_3->text(); newaccount(); //Функция изменения внешнего вида окна для добавления счета клиента void NewClient::newAccount() ui->pushbutton->hide(); ui->lineedit->clear(); ui->lineedit->setplaceholdertext("номер счета"); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->lineedit_4->hide(); ui->lineedit_5->hide(); ui->lineedit_6->hide(); ui->lineedit_7->hide(); ui->lineedit_8->hide(); ui->lineedit_9->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->lineedit_14->hide(); ui->lineedit_15->hide(); ui->lineedit_16->hide(); ui->lineedit_17->hide(); ui->pushbutton_2->hide(); ui->label->settext("номер счета клиента:"); ui->label->repaint(); next->show(); //Функция добавления счета клиента в базу данных void NewClient::on_next_clicked() if(ui->lineedit->text().isempty()) QMessageBox msgbox; msgbox.settext("не введен номер счета.\nпопробуйте еще раз."); msgbox.exec(); newaccount(); else QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else 90

91 91 QSqlQuery query; QString a = "INSERT INTO Account VALUES ("; query.exec(a+idclient+",'"+ui->lineedit->text()+"','0')"); query.next(); newpassword(); //Функция добавление логина и пароля пользователя void NewClient::on_nextnext_clicked() if(ui->lineedit->text().isempty()) QMessageBox msgbox; msgbox.settext("пароль не введен.\nпопробуйте еще раз."); msgbox.exec(); newpassword(); else if(ui->lineedit->text()!=ui->lineedit_2->text()) QMessageBox msgbox; msgbox.settext("пароли не совпадают.\nпопробуйте еще раз."); msgbox.exec(); newpassword(); else QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString Login = Name+Family;//Формирование логина QCryptographicHash* hash; QString PasswordPol = ui->lineedit->text(); QByteArray result = hash- >hash(passwordpol.tolatin1(),qcryptographichash::sha1);//вычисление значения хэш-функции QString Password = result.tohex(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "INSERT INTO Password VALUES("; query.exec(a+idclient+",'"+login+"','"+password+"')"); query.next(); ui->label->settext("новый клиент успешно добавлен в базу данных"); ui->label->repaint(); nextnext->hide(); ui->lineedit_2->hide(); ui->lineedit->hide(); ui->pushbutton->show(); void NewClient::on_action_3_triggered() close(); //Функция изменения внешнего вида окна для добавления логина и пароля пользователя void NewClient::newpassword() ui->lineedit->clear();

92 92 ui->lineedit_2->clear(); ui->lineedit->setechomode(qlineedit::password); ui->lineedit->setplaceholdertext("пароль"); ui->lineedit_2->show(); ui->lineedit_2->setechomode(qlineedit::password); ui->lineedit_2->setplaceholdertext("повторите пароль"); ui->label->settext("пароль клиента (должен ввести сам улиент):"); ui->label->repaint(); next->hide(); nextnext->show(); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString Login = Name+Family; QString a = "INSERT INTO Audit VALUES('"; query.exec(a+"0','" +LoginRabotnika+ "','Работник','Добавление нового пользователя','"+idclient+"','клиент','"+login+"',datetime('now'))"); newcredit.h #ifndef NEWCREDIT_H #define NEWCREDIT_H #include <QMainWindow> #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" #include <QPushButton> #include <QLabel> #include <QMessageBox> namespace Ui class NewCredit; //Класс добавления нового кредита в базу данных class NewCredit : public QMainWindow Q_OBJECT public: explicit NewCredit(QString Login, QWidget *parent = 0); ~NewCredit(); QString idclient,idcurantor,contract,loginrabotnika,name,family; int id; QPushButton* next; QPushButton* nextnext; int Diolog(); void newguarantor(); void oldguarantor(); void theend(); void CreditData(); private slots: void on_pushbutton_clicked(); void on_action_triggered();

93 93 void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_2_clicked(); void on_next_clicked(); void on_nextnext_clicked(); private: Ui::NewCredit *ui; ; #endif // NEWCREDIT_H newcredit.cpp #include "newcredit.h" #include "ui_newcredit.h" NewCredit::NewCredit(QString Login, QWidget *parent) : QMainWindow(parent), ui(new Ui::NewCredit) ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя"); ui->lineedit_2->setplaceholdertext("фамилия"); ui->lineedit_3->setplaceholdertext("серия"); ui->lineedit_4->setplaceholdertext("номер"); ui->lineedit_5->hide(); ui->lineedit_6->hide(); ui->lineedit_7->hide(); ui->lineedit_8->hide(); ui->lineedit_9->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); next = new QPushButton("Далее",this); next->setgeometry(610,320,111,23); next->hide(); nextnext = new QPushButton("Далее",this); nextnext->setgeometry(610,320,111,23); nextnext->hide(); connect(nextnext,signal(clicked()),this,slot(on_nextnext_clicked())); connect(next,signal(clicked()),this,slot(on_next_clicked())); NewCredit::~NewCredit() delete ui; //Функция возврата к основному меню работника void NewCredit::on_pushButton_clicked() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close();

94 94 void NewCredit::on_action_triggered() on_pushbutton_clicked(); //Функция смены пользователя void NewCredit::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void NewCredit::on_action_3_triggered() close(); //Функция поиска клиента void NewCredit::on_pushButton_2_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); Name = ui->lineedit->text(); Family = ui->lineedit_2->text(); QString Series = ui->lineedit_3->text(); QString Number = ui->lineedit_4->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select id From Clients WHERE Name="; query.exec(a+"'"+name+"' AND LastName="+"'"+Family+"' AND SeriesP="+"'"+Series+"' AND NumberP="+"'"+Number+"'"); query.next(); idclient = query.value(query.record().indexof("id")).tostring(); if(idclient.isnull()) QMessageBox msgbox; msgbox.settext("клиент не найден.\nпопробуйте еще раз."); msgbox.exec(); NewCredit* FC = new NewCredit(LoginRabotnika); FC->show(); this->close(); CreditData(); //Функция добавления кредитной информации void NewCredit::on_next_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else if(ui->lineedit->text().isempty() ui->lineedit_2- >text().isempty() ui->lineedit_3->text().isempty() ui->lineedit_4->text().isempty() ui->lineedit_5- >text().isempty() ui->lineedit_6->text().isempty()) QMessageBox msgbox; msgbox.settext("введены не все данные о кредите.\nпопробуйте еще раз.");

95 95 msgbox.exec(); CreditData(); else QSqlQuery query; QString a = "INSERT INTO Credit VALUES ("; query.exec(a+idclient+",'"+ ui->lineedit->text()+"','"+ ui->lineedit_2->text()+"',"+"1,0,"+ ui->lineedit_3->text()+","+ ui->lineedit_4->text()+","+ ui->lineedit_5->text()+",'potrebitelskii',"+ ui->lineedit_6->text()+")"); query.next(); Contract = ui->lineedit->text(); int n = this->diolog(); if(n==1) newguarantor(); if(n==0) oldguarantor(); else next->hide(); theend(); //Функция смены внешнего вида окна для добавления нового поручителя void NewCredit::newGuarantor() ui->lineedit_7->show(); ui->lineedit_8->show(); ui->lineedit_9->show(); ui->lineedit_10->show(); ui->lineedit_11->show(); ui->lineedit_12->show(); ui->lineedit_13->show(); ui->lineedit->setplaceholdertext("имя"); ui->lineedit_2->setplaceholdertext("отчество"); ui->lineedit_3->setplaceholdertext("фамилия"); ui->lineedit_4->setplaceholdertext("дата рождения"); ui->lineedit_5->setplaceholdertext("номер телефона"); ui->lineedit_6->setplaceholdertext("город проживания"); ui->lineedit_7->setplaceholdertext("улица"); ui->lineedit_8->setplaceholdertext("дом"); ui->lineedit_9->setplaceholdertext("квартира"); ui->lineedit_10->setplaceholdertext("место работы"); ui->lineedit_11->setplaceholdertext("должность"); ui->lineedit_12->setplaceholdertext("зп"); ui->lineedit_13->setplaceholdertext("пол"); id=0; ui->label->settext("информация о поручателе:"); ui->label->repaint(); next->hide(); nextnext->show(); connect(nextnext,signal(clicked()),this,slot(on_nextnext_clicked())); //Функция смены внешнего вида окна для поиска поручителя void NewCredit::oldGuarantor() ui->lineedit->setplaceholdertext("имя");

96 96 ui->lineedit_2->setplaceholdertext("отчество"); ui->lineedit_3->setplaceholdertext("фамилия"); ui->lineedit_4->setplaceholdertext("телефон"); ui->lineedit_5->hide(); ui->lineedit_6->hide(); ui->lineedit_7->hide(); ui->lineedit_8->hide(); ui->lineedit_9->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); id=1; ui->label->settext("информация о поручателе:"); ui->label->repaint(); next->hide(); nextnext->show(); //Функция добавления нового поручителя или поиска инфрмации об уже добавленном void NewCredit::on_nextnext_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; if(id==0) if(ui->lineedit->text().isempty() ui->lineedit_2- >text().isempty() ui->lineedit_3->text().isempty() ui->lineedit_4->text().isempty() ui->lineedit_5- >text().isempty() ui->lineedit_10->text().isempty() ui->lineedit_11- >text().isempty() ui->lineedit_12->text().isempty() ui->lineedit_13- >text().isempty() ui->lineedit_6->text().isempty()) QMessageBox msgbox; msgbox.settext("введены не все данные о поручителе.\nпопробуйте еще раз."); msgbox.exec(); newguarantor(); else QString a = "INSERT INTO Guarantor (Name,Otch,LastName,Bday,Phone,Gender,City,Street,Home,Apartment,Job, JobTitle,Salary) VALUES ('"; query.exec(a+ui->lineedit->text()+"','"+ ui->lineedit_2->text()+"','"+ ui->lineedit_3->text()+"','"+ ui->lineedit_4->text()+"','"+ ui->lineedit_5->text()+"','"+ ui->lineedit_13->text()+"','"+ ui->lineedit_6->text()+"','"+ ui->lineedit_7->text()+"','"+ ui->lineedit_8->text()+"','"+ ui->lineedit_9->text()+"','"+ ui->lineedit_10->text()+"','"+ ui->lineedit_11->text()+"','"+ ui->lineedit_12->text()+"')"); query.next(); QString b = "Select id From Guarantor WHERE Name=";

97 97 query.exec(b+"'"+ui->lineedit->text()+"' AND Otch="+"'"+ui- >lineedit_2->text()+"' AND LastName="+"'"+ui->lineEdit_3->text()+"' AND Phone="+"'"+ui->lineEdit_5->text()+"'"); query.next(); idcurantor=query.value(query.record().indexof("id")).tostring(); QString c = "UPDATE Credit SET idguarantor='"; query.exec(c+idcurantor+"' WHERE ContractNumber='"+Contract+"'"); query.next(); QString d = "INSERT INTO Audit VALUES('"; query.exec(d+"'0','" +LoginRabotnika+ "','Работник','Добавление нового поручителя','"+idcurantor+"','поручитель','0',datetime('now'))"); theend(); else QString Name = ui->lineedit->text(); QString Otch = ui->lineedit_2->text(); QString Family = ui->lineedit_3->text(); QString Phone = ui->lineedit_4->text(); QSqlQuery query; QString a = "Select* From Guarantor WHERE Name="; query.exec(a+"'"+name+"' AND Otch="+"'"+Otch+"' AND LastName="+"'"+Family+"' AND Phone="+"'"+Phone+"'"); query.next(); idcurantor=query.value(query.record().indexof("id")).tostring(); if(idcurantor.isempty()) QMessageBox msgbox; msgbox.settext("поручитель не найден.\nпопробуйте еще раз."); msgbox.exec(); ui->lineedit->clear(); ui->lineedit_2->clear(); ui->lineedit_3->clear(); ui->lineedit_4->clear(); oldguarantor(); else QString c = "UPDATE Credit SET idguarantor='"; query.exec(c+idcurantor+"where ContractNumber='"+Contract+"'"); query.next(); theend(); //Функция диолога о добавлении нового поручителя int NewCredit::Diolog() QMessageBox::StandardButton reply; reply = QMessageBox::question(this, QString::fromUtf8("Добавление поручителя в базу"), QString::fromUtf8("Необходимо добавлять поручителя?"), QMessageBox::Yes QMessageBox::No QMessageBox::Cancel); if (reply == QMessageBox::Yes) return 1;

98 98 else if (reply == QMessageBox::No) return 0; else return -1; //Функция смены внешнего вида окна для добавления кредитной информации void NewCredit::CreditData() ui->lineedit->clear(); ui->lineedit_2->clear(); ui->lineedit_3->clear(); ui->lineedit_4->clear(); ui->lineedit->setplaceholdertext("номер договора"); ui->lineedit_2->setplaceholdertext("дата выдачи"); ui->lineedit_3->setplaceholdertext("процентная ставка"); ui->lineedit_4->setplaceholdertext("остаток (сумма кредита-первый взнос)"); ui->lineedit_5->show(); ui->lineedit_6->show(); ui->lineedit_5->setplaceholdertext("длительность"); ui->lineedit_6->setplaceholdertext("сумма"); ui->label->settext("информация о кредите:"); ui->label->repaint(); next->show(); ui->pushbutton_2->hide(); //Функция смены внешнего вида окна при завершении добавления void NewCredit::theEnd() ui->lineedit->hide(); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->lineedit_4->hide(); ui->lineedit_5->hide(); ui->lineedit_6->hide(); ui->lineedit_7->hide(); ui->lineedit_8->hide(); ui->lineedit_9->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->label->settext("новый кредит успешно добавлен в базу данных"); ui->label->repaint(); nextnext->hide(); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString Login = Name+Family; QString a = "INSERT INTO Audit VALUES('"; query.exec(a+"0','" +LoginRabotnika+ "','Работник','Добавление нового кредита','"+idclient+"','клиент','"+login+"',datetime('now'))"); newguarantor.h #ifndef NEWGUARANTOR_H

99 99 #define NEWGUARANTOR_H #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" #include <QPushButton> namespace Ui class NewGuarantor; //Класс добавления в базу нового поручителя работником банка class NewGuarantor : public QMainWindow Q_OBJECT public: explicit NewGuarantor(QString Login, QWidget *parent = 0); ~NewGuarantor(); int idclient; QString Name,LoginRabotnika,Phone; QPushButton* next; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); private: Ui::NewGuarantor *ui; ; #endif // NEWGUARANTOR_H newguarantor.cpp #include "newguarantor.h" #include "ui_newguarantor.h" NewGuarantor::NewGuarantor(QString Login, QWidget *parent) : QMainWindow(parent), ui(new Ui::NewGuarantor) ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя"); ui->lineedit_2->setplaceholdertext("отчество"); ui->lineedit_3->setplaceholdertext("фамилия"); ui->lineedit_4->setplaceholdertext("дата рождения"); ui->lineedit_5->setplaceholdertext("номер телефона"); ui->lineedit_10->setplaceholdertext("город проживания"); ui->lineedit_11->setplaceholdertext("улица"); ui->lineedit_12->setplaceholdertext("дом"); ui->lineedit_13->setplaceholdertext("квартира"); ui->lineedit_14->setplaceholdertext("место работы"); ui->lineedit_15->setplaceholdertext("должность"); ui->lineedit_16->setplaceholdertext("зп"); ui->lineedit_6->setplaceholdertext("пол");

100 100 NewGuarantor::~NewGuarantor() delete ui; //Функция возврата к основному меню работника банка void NewGuarantor::on_action_triggered() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close(); //Функция смены пользователя void NewGuarantor::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void NewGuarantor::on_action_3_triggered() close(); void NewGuarantor::on_pushButton_clicked() on_action_triggered(); //Функция добавления нового поручителя void NewGuarantor::on_pushButton_2_clicked() //Проверка, введены ли все данные if(ui->lineedit->text().isempty() ui->lineedit_2->text().isempty() ui- >lineedit_3->text().isempty() ui->lineedit_4->text().isempty() ui->lineedit_5- >text().isempty() ui->lineedit_10->text().isempty() ui->lineedit_11- >text().isempty() ui->lineedit_12->text().isempty() ui->lineedit_13- >text().isempty() ui->lineedit_14->text().isempty() ui->lineedit_15- >text().isempty() ui->lineedit_16->text().isempty() ui->lineedit_6- >text().isempty()) QMessageBox msgbox; msgbox.settext("введены не все данные.\nпопробуйте еще раз."); msgbox.exec(); else QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "INSERT INTO Guarantor (Name,Otch,LastName,Bday,Phone,Gender,City,Street,Home,Apartment,Job, JobTitle,Salary) VALUES ('"; query.exec(a+ui->lineedit->text()+"','"+ ui->lineedit_2->text()+"','"+ ui->lineedit_3->text()+"','"+ ui->lineedit_4->text()+"','"+

101 101 ui->lineedit_5->text()+"','"+ ui->lineedit_6->text()+"','"+ ui->lineedit_10->text()+"','"+ ui->lineedit_11->text()+"','"+ ui->lineedit_12->text()+"','"+ ui->lineedit_13->text()+"','"+ ui->lineedit_14->text()+"','"+ ui->lineedit_15->text()+"','"+ ui->lineedit_16->text()+"')"); query.next(); QString b = "Select id From Guarantor WHERE Name="; query.exec(b+"'"+ui->lineedit->text()+"' AND LastName="+"'"+ui- >lineedit_2->text()+"' AND Otch="+"'"+ui->lineEdit_3->text()+"' AND Phone="+"'"+ui->lineEdit_5->text()+"'"); query.next(); QString idcurantor=query.value(query.record().indexof("id")).tostring(); query.next(); QString c = "INSERT INTO Audit VALUES('"; query.exec(c+"0','" +LoginRabotnika+ "','Работник','Добавление нового поручителя','"+idcurantor+"','поручитель','0',datetime('now'))"); ui->lineedit->hide(); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->lineedit_4->hide(); ui->lineedit_5->hide(); ui->lineedit_6->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->lineedit_14->hide(); ui->lineedit_15->hide(); ui->lineedit_16->hide(); ui->label->settext("новый поручитель успешно добавлен в базу данных"); ui->label->repaint(); ui->pushbutton_2->hide(); paymentcredit.h #ifndef PAYMENTCREDIT_H #define PAYMENTCREDIT_H #include <QMainWindow> #include "clientform.h" #include "mainwindow.h" namespace Ui class PaymentCredit; //Класс для оплаты клиентом по одному из кредитов class PaymentCredit : public QMainWindow Q_OBJECT public: explicit PaymentCredit(QString idclient,qwidget *parent = 0);

102 102 ~PaymentCredit(); QString idclienta,name,family; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); private: Ui::PaymentCredit *ui; ; #endif // PAYMENTCREDIT_H paymentcredit.cpp #include "paymentcredit.h" #include "ui_paymentcredit.h" PaymentCredit::PaymentCredit(QString idclient, QWidget *parent) : QMainWindow(parent), ui(new Ui::PaymentCredit) //Поиск информации о кредитах и счетах пользователя и вывод номеров кредитных договоров и счетов ui->setupui(this); idclienta=idclient; QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select* From Clients WHERE id="; query.exec(a+"'"+idclient+"'"); query.next(); Name = query.value(query.record().indexof("name")).tostring(); Family = query.value(query.record().indexof("lastname")).tostring(); QString b = "Select Number From Account WHERE idclient="; query.exec(b+"'"+idclient+"'"); while (query.next()) QString number = query.value(query.record().indexof("number")).tostring(); ui->combobox->additem(number); QString c = "Select * From Credit WHERE idclient="; query.exec(c+"'"+idclient+"'"); while (query.next()) QString number = query.value(query.record().indexof("contractnumber")).tostring(); ui->combobox_2->additem(number);

103 103 PaymentCredit::~PaymentCredit() delete ui; //Функция возврата к основному меню клиента void PaymentCredit::on_action_triggered() ClientForm* cliform = new ClientForm(Name,idClienta); cliform->show(); this->close(); //Функция смены пользователя void PaymentCredit::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void PaymentCredit::on_action_3_triggered() close(); void PaymentCredit::on_pushButton_clicked() on_action_triggered(); //Функция проведения оплаты выбраного кредита с выбраного счета void PaymentCredit::on_pushButton_2_clicked() QString Account = ui->combobox->currenttext(); QString Credit = ui->combobox_2->currenttext(); QString Sum = ui->lineedit->text(); int AccountData; QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString b = "Select Amount From Account WHERE Number="; query.exec(b+"'"+account+"'"); query.next(); AccountData= query.value(query.record().indexof("amount")).toint(); QString a = "Select Residue From Credit WHERE ContractNumber="; query.exec(a+"'"+credit+"'"); query.next(); qdebug()<<a+"'"+credit+"'"; int Reside = query.value(query.record().indexof("residue")).toint(); QString Reside2 = query.value(query.record().indexof("residue")).tostring(); if(sum.toint()>accountdata) QMessageBox msgbox; msgbox.settext("недостаточно средств на счете."); msgbox.exec(); if(sum.toint()>reside)

104 104 кредиту."); QMessageBox msgbox; msgbox.settext("сумма платежа превышает остаток по msgbox.exec(); else if(db.transaction())//реализация транзакции int result = Reside-Sum.toInt(); QString resultatcredit = QString::number(result); QString a = "UPDATE Credit SET Residue='"; query.exec(a+resultatcredit+"' WHERE ContractNumber='"+Credit+"'"); query.next(); result=accountdata-sum.toint(); QString resultataccount = QString::number(result); QString b = "UPDATE Account SET Amount='"; query.exec(b+resultataccount+"' WHERE Number='"+Account+"'"); query.next(); QString d = "INSERT INTO Audit VALUES('"; QString Login=Name+Family; QString zapros2 =d+idclienta+"','"+ Login+ "','Клиент','Платеж по кредиту "+Credit+" на сумму "+Sum+"','"+idClienta+"','Клиент','"+Login+"',datetime('now'))" ; query.exec(zapros2); //qdebug()<<zapros2; query.next(); db.commit(); ui->combobox->hide(); ui->combobox_2->hide(); ui->label_2->hide(); ui->lineedit->hide(); ui->label->settext("оплата прошла успешно"); ui->label->repaint(); ui->pushbutton_2->hide(); rabotnikbankaform.h #ifndef RABOTNIKBANKAFORM_H #define RABOTNIKBANKAFORM_H #include <QMainWindow> #include "mainwindow.h" #include "newclient.h" #include "findclient.h" #include "newcredit.h" #include "findcredit.h" #include "newguarantor.h" #include "findguarantor.h" #include "updateclient.h" #include "updateguarantor.h" #include "updatepasswordrabotnik.h" namespace Ui

105 105 class RabotnikBankaForm; //Класс основной формы работника банка class RabotnikBankaForm : public QMainWindow Q_OBJECT public: explicit RabotnikBankaForm(QString Login, QWidget *parent = 0); ~RabotnikBankaForm(); QString LoginRabotnika; private slots: void on_action_7_triggered(); void on_action_8_triggered(); void on_pushbutton_2_clicked(); void on_pushbutton_clicked(); void on_action_triggered(); void on_action_2_triggered(); void on_pushbutton_4_clicked(); void on_action_4_triggered(); void on_action_5_triggered(); void on_pushbutton_3_clicked(); void on_pushbutton_6_clicked(); void on_pushbutton_5_clicked(); void on_action_6_triggered(); void on_action_3_triggered(); void on_pushbutton_7_clicked(); void on_action_9_triggered(); void on_pushbutton_8_clicked(); void on_action_10_triggered(); void on_action_11_triggered(); private: Ui::RabotnikBankaForm *ui; ; #endif // RABOTNIKBANKAFORM_H rabotnikbankaform.cpp #include "rabotnikbankaform.h" #include "ui_rabotnikbankaform.h" RabotnikBankaForm::RabotnikBankaForm(QString Login, QWidget *parent) :

106 106 QMainWindow(parent), ui(new Ui::RabotnikBankaForm) ui->setupui(this); LoginRabotnika=Login; RabotnikBankaForm::~RabotnikBankaForm() delete ui; //Функция смены пользователя void RabotnikBankaForm::on_action_7_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void RabotnikBankaForm::on_action_8_triggered() close(); //Функция поиска информации о клиенте void RabotnikBankaForm::on_pushButton_2_clicked() FindClient* FC = new FindClient(LoginRabotnika); FC->show(); this->close(); //Функция добавления нового клиента void RabotnikBankaForm::on_pushButton_clicked() NewClient* NC = new NewClient(LoginRabotnika); NC->show(); this->close(); void RabotnikBankaForm::on_action_triggered() on_pushbutton_2_clicked(); void RabotnikBankaForm::on_action_2_triggered() on_pushbutton_clicked(); //Функция поиска информации о кредите void RabotnikBankaForm::on_pushButton_4_clicked() FindCredit* FC = new FindCredit(LoginRabotnika); FC->show(); this->close(); void RabotnikBankaForm::on_action_4_triggered() on_pushbutton_4_clicked();

107 107 //Функция добавления нового кредита void RabotnikBankaForm::on_pushButton_3_clicked() NewCredit* NC = new NewCredit(LoginRabotnika); NC->show(); this->close(); void RabotnikBankaForm::on_action_3_triggered() on_pushbutton_3_clicked(); //Функция поиска информации о поручителе void RabotnikBankaForm::on_pushButton_6_clicked() FindGuarantor* FG = new FindGuarantor(LoginRabotnika); FG->show(); this->close(); //Функция добавления нового поручителя void RabotnikBankaForm::on_pushButton_5_clicked() NewGuarantor* NG = new NewGuarantor(LoginRabotnika); NG->show(); this->close(); void RabotnikBankaForm::on_action_6_triggered() on_pushbutton_6_clicked(); void RabotnikBankaForm::on_action_5_triggered() on_pushbutton_5_clicked(); //Функция добавления изменения информации о клиенте void RabotnikBankaForm::on_pushButton_7_clicked() UpDateClient* udc = new UpDateClient(LoginRabotnika); udc->show(); this->hide(); void RabotnikBankaForm::on_action_9_triggered() on_pushbutton_7_clicked(); //Функция добавления изменения информации о поручителе void RabotnikBankaForm::on_pushButton_8_clicked() UpDateGuarantor* udg = new UpDateGuarantor(LoginRabotnika); udg->show(); this->hide(); void RabotnikBankaForm::on_action_10_triggered()

108 108 on_pushbutton_8_clicked(); //Функция добавления изменения пароля пользователя void RabotnikBankaForm::on_action_11_triggered() UpDatePasswordRabotnik* UDPR = new UpDatePasswordRabotnik(LoginRabotnika); UDPR->show(); this->hide(); updateclient.h ifndef UPDATECLIENT_H #define UPDATECLIENT_H #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" namespace Ui class UpDateClient; //Класс изменения информации о клиенте работником банка class UpDateClient : public QMainWindow Q_OBJECT public: explicit UpDateClient(QString Login,QWidget *parent = 0); ~UpDateClient(); QPushButton* next; QString idclient,loginrabotnika; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); void on_next_clicked(); private: Ui::UpDateClient *ui; ; #endif // UPDATECLIENT_H updateclient.cpp #include "updateclient.h" #include "ui_updateclient.h" UpDateClient::UpDateClient(QString Login, QWidget *parent) : QMainWindow(parent), ui(new Ui::UpDateClient)

109 109 ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя"); ui->lineedit_3->setplaceholdertext("фамилия"); ui->lineedit_6->setplaceholdertext("серия паспорта"); ui->lineedit_7->setplaceholdertext("номер паспорта"); ui->lineedit_2->hide(); ui->lineedit_4->hide(); ui->lineedit_5->hide(); ui->lineedit_8->hide(); ui->lineedit_9->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->lineedit_14->hide(); ui->lineedit_15->hide(); ui->lineedit_16->hide(); ui->lineedit_17->hide(); UpDateClient::~UpDateClient() delete ui; //Функция возвращения к основному окну работника банка void UpDateClient::on_action_triggered() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close(); //Функция смены пользователя void UpDateClient::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void UpDateClient::on_action_3_triggered() close(); void UpDateClient::on_pushButton_clicked() on_action_triggered(); //Функция вывода старых данных void UpDateClient::on_pushButton_2_clicked() ui->lineedit_2->show(); ui->lineedit_4->show(); ui->lineedit_5->show(); ui->lineedit_8->show(); ui->lineedit_9->show(); ui->lineedit_10->show(); ui->lineedit_11->show(); ui->lineedit_12->show(); ui->lineedit_13->show(); ui->lineedit_14->show();

110 110 ui->lineedit_15->show(); ui->lineedit_16->show(); ui->pushbutton_2->hide(); ui->label->settext("старые данные клиента:"); ui->label->repaint(); next = new QPushButton("Сохранить",this); next->setgeometry(610,320,111,23); next->show(); ui->pushbutton_2->hide(); connect(next,signal(clicked()),this,slot(on_next_clicked())); //Функция добавления измененных данных в базу данных void UpDateClient::on_next_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString Name = ui->lineedit->text(); QString Otch = ui->lineedit_2->text(); QString Family = ui->lineedit_3->text(); QString Bday = ui->lineedit_4->text(); QString Phone = ui->lineedit_5->text(); QString SeriesP = ui->lineedit_6->text(); QString NumberP = ui->lineedit_7->text(); QString PublishedP = ui->lineedit_8->text(); QString DateP = ui->lineedit_9->text(); QString City = ui->lineedit_10->text(); QString Street = ui->lineedit_11->text(); QString Home = ui->lineedit_12->text(); QString Apartment = ui->lineedit_13->text(); QString Job = ui->lineedit_14->text(); QString JobTitle = ui->lineedit_15->text(); QString Salary = ui->lineedit_16->text(); QString Gender = ui->lineedit_17->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "UPDATE Clients SET Name='"; QString zapros = a+name+"',otch='"+otch+"',lastname='"+family+"',bday='"+bday+ "',Phone='"+Phone+"',SeriesP='"+SeriesP+"',NumberP='"+NumberP+ "',PublishedP='"+PublishedP+"',DateP='"+DateP+"',City='"+City+ "',Street='"+Street+"',Home='"+Home+"',Apartment='"+Apartment+ "',Job='"+Job+"',JobTitle='"+JobTitle+"',Salary='"+Salary+ "',Gender='"+Gender+"' WHERE id="+idclient; query.exec(zapros); query.next(); QString Login=Name+Family; QString b = "UPDATE Password SET Login='"; query.exec(b+login+"' WHERE id="+idclient); query.next(); QString d = "INSERT INTO Audit VALUES('"; QString zapros2 =d+"0','" +LoginRabotnika+ "','Работник','Изменение данных пользователя','"+idclient+"','клиент','"+login+"',datetime('now'))" ; query.exec(zapros2); qdebug()<<zapros2; query.next();

111 111 ui->lineedit->hide(); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->lineedit_4->hide(); ui->lineedit_5->hide(); ui->lineedit_6->hide(); ui->lineedit_7->hide(); ui->lineedit_8->hide(); ui->lineedit_9->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->lineedit_14->hide(); ui->lineedit_15->hide(); ui->lineedit_16->hide(); ui->lineedit_17->hide(); ui->label->settext("данные пользователя успешно изменены"); ui->label->repaint(); next->hide(); updateclientclient.h #ifndef UPDATECLIENTCLIENT_H #define UPDATECLIENTCLIENT_H #include <QMainWindow> #include "clientform.h" #include "mainwindow.h" namespace Ui class UpDateClientClient; //Класс изменения данных о клиенте самим клиентом class UpDateClientClient : public QMainWindow Q_OBJECT public: explicit UpDateClientClient(QString idclient, QWidget *parent = 0); ~UpDateClientClient(); QString idclienta, Name; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); private: Ui::UpDateClientClient *ui; ;

112 112 #endif // UPDATECLIENTCLIENT_H updateclientclient.cpp include "updateclientclient.h" #include "ui_updateclientclient.h" UpDateClientClient::UpDateClientClient(QString idclient, QWidget *parent) : QMainWindow(parent), ui(new Ui::UpDateClientClient) //Поиск информации о клиенте и вывод ее на экран сразу ui->setupui(this); idclienta=idclient; QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select* From Clients WHERE id="; query.exec(a+"'"+idclienta+"'"); query.next(); Name = query.value(query.record().indexof("name")).tostring(); ui->lineedit->settext(name); ui->lineedit_2- >settext(query.value(query.record().indexof("otch")).tostring()); ui->lineedit_3- >settext(query.value(query.record().indexof("lastname")).tostring()); ui->lineedit_4- >settext(query.value(query.record().indexof("bday")).tostring()); ui->lineedit_5- >settext(query.value(query.record().indexof("phone")).tostring()); ui->lineedit_6- >settext(query.value(query.record().indexof("seriesp")).tostring()); ui->lineedit_7- >settext(query.value(query.record().indexof("numberp")).tostring()); ui->lineedit_8- >settext(query.value(query.record().indexof("publishedp")).tostring()); ui->lineedit_9- >settext(query.value(query.record().indexof("datep")).tostring()); ui->lineedit_10- >settext(query.value(query.record().indexof("city")).tostring()); ui->lineedit_11- >settext(query.value(query.record().indexof("street")).tostring()); ui->lineedit_12- >settext(query.value(query.record().indexof("home")).tostring()); ui->lineedit_13- >settext(query.value(query.record().indexof("apartment")).tostring()); ui->lineedit_14- >settext(query.value(query.record().indexof("job")).tostring()); ui->lineedit_15- >settext(query.value(query.record().indexof("jobtitle")).tostring()); ui->lineedit_16- >settext(query.value(query.record().indexof("salary")).tostring()); ui->lineedit_17- >settext(query.value(query.record().indexof("gender")).tostring()); UpDateClientClient::~UpDateClientClient()

113 113 delete ui; //Функция возвращения к основному окну клиента банка void UpDateClientClient::on_action_triggered() ClientForm* cliform = new ClientForm(Name,idClienta); cliform->show(); this->close(); //Функция возвращения смены пользователя void UpDateClientClient::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void UpDateClientClient::on_action_3_triggered() close(); void UpDateClientClient::on_pushButton_clicked() on_action_triggered(); //Функция обновления данных клиента в базе данных void UpDateClientClient::on_pushButton_2_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString NewName = ui->lineedit->text(); QString Otch = ui->lineedit_2->text(); QString Family = ui->lineedit_3->text(); QString Bday = ui->lineedit_4->text(); QString Phone = ui->lineedit_5->text(); QString SeriesP = ui->lineedit_6->text(); QString NumberP = ui->lineedit_7->text(); QString PublishedP = ui->lineedit_8->text(); QString DateP = ui->lineedit_9->text(); QString City = ui->lineedit_10->text(); QString Street = ui->lineedit_11->text(); QString Home = ui->lineedit_12->text(); QString Apartment = ui->lineedit_13->text(); QString Job = ui->lineedit_14->text(); QString JobTitle = ui->lineedit_15->text(); QString Salary = ui->lineedit_16->text(); QString Gender = ui->lineedit_17->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "UPDATE Clients SET Name='"; QString zapros = a+newname+"',otch='"+otch+"',lastname='"+family+"',bday='"+bday+ "',Phone='"+Phone+"',SeriesP='"+SeriesP+"',NumberP='"+NumberP+ "',PublishedP='"+PublishedP+"',DateP='"+DateP+"',City='"+City+ "',Street='"+Street+"',Home='"+Home+"',Apartment='"+Apartment+ "',Job='"+Job+"',JobTitle='"+JobTitle+"',Salary='"+Salary+ "',Gender='"+Gender+"' WHERE id="+idclienta;

114 114 query.exec(zapros); //qdebug()<<zapros; query.next(); QString Login=NewName+Family; QString b = "UPDATE Password SET Login='"; query.exec(b+login+"' WHERE id="+idclienta); query.next(); QString d = "INSERT INTO Audit VALUES('"; QString zapros2 =d+idclienta+"','"+ Login+ "','Клиент','Изменение данных','"+idclienta+"','клиент','"+login+"',datetime('now'))" ; query.exec(zapros2); //qdebug()<<zapros2; query.next(); ui->lineedit->hide(); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->lineedit_4->hide(); ui->lineedit_5->hide(); ui->lineedit_6->hide(); ui->lineedit_7->hide(); ui->lineedit_8->hide(); ui->lineedit_9->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->lineedit_14->hide(); ui->lineedit_15->hide(); ui->lineedit_16->hide(); ui->lineedit_17->hide(); ui->label->settext("данные успешно изменены"); ui->label->repaint(); ui->pushbutton_2->hide(); updateguarantor.h #ifndef UPDATEGUARANTOR_H #define UPDATEGUARANTOR_H #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" namespace Ui class UpDateGuarantor; //Класс изменения данных поручителя работником банка class UpDateGuarantor : public QMainWindow Q_OBJECT public: explicit UpDateGuarantor(QString Login,QWidget *parent = 0); ~UpDateGuarantor(); QPushButton* next;

115 115 QString idguarantor,loginrabotnika; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); void on_next_clicked(); private: Ui::UpDateGuarantor *ui; ; #endif // UPDATEGUARANTOR_H updateguarantor.cpp #include "updateguarantor.h" #include "ui_updateguarantor.h" UpDateGuarantor::UpDateGuarantor(QString Login, QWidget *parent) : QMainWindow(parent), ui(new Ui::UpDateGuarantor) ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя"); ui->lineedit_2->setplaceholdertext("отчество"); ui->lineedit_3->setplaceholdertext("фамилия"); ui->lineedit_4->setplaceholdertext("телефон"); ui->lineedit_5->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->lineedit_14->hide(); ui->lineedit_15->hide(); ui->lineedit_16->hide(); ui->lineedit_6->hide(); UpDateGuarantor::~UpDateGuarantor() delete ui; //Функция возвращения к основному окну работника банка void UpDateGuarantor::on_action_triggered() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close(); //Функция смены пользователя void UpDateGuarantor::on_action_2_triggered()

116 116 MainWindow* w = new MainWindow(); w->show(); this->close(); void UpDateGuarantor::on_action_3_triggered() close(); void UpDateGuarantor::on_pushButton_clicked() on_action_triggered(); //Функция вывода старых данных поручителя void UpDateGuarantor::on_pushButton_2_clicked() ui->lineedit_5->show(); ui->lineedit_10->show(); ui->lineedit_11->show(); ui->lineedit_12->show(); ui->lineedit_13->show(); ui->lineedit_14->show(); ui->lineedit_15->show(); ui->lineedit_16->show(); ui->lineedit_6->show(); ui->pushbutton_2->hide(); ui->label->settext("старые данные поручителя:"); ui->label->repaint(); next = new QPushButton("Сохранить",this); next->setgeometry(610,320,111,23); next->show(); ui->pushbutton_2->hide(); connect(next,signal(clicked()),this,slot(on_next_clicked())); //Функция обновления данных поручителя в базе данных void UpDateGuarantor::on_next_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QString Name = ui->lineedit->text(); QString Otch = ui->lineedit_2->text(); QString Family = ui->lineedit_3->text(); QString Bday = ui->lineedit_4->text(); QString Phone = ui->lineedit_5->text(); QString City = ui->lineedit_10->text(); QString Street = ui->lineedit_11->text(); QString Home = ui->lineedit_12->text(); QString Apartment = ui->lineedit_13->text(); QString Job = ui->lineedit_14->text(); QString JobTitle = ui->lineedit_15->text(); QString Salary = ui->lineedit_16->text(); QString Gender = ui->lineedit_6->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "UPDATE Guarantor SET Name='"; QString zapros = a+name+"',otch='"+otch+"',lastname='"+family+"',bday='"+bday+ "',Phone='"+Phone+"',City='"+City+ "',Street='"+Street+"',Home='"+Home+"',Apartment='"+Apartment+

117 117 "',Job='"+Job+"',JobTitle='"+JobTitle+"',Salary='"+Salary+ "',Gender='"+Gender+"' WHERE id="+idguarantor; query.exec(zapros); qdebug()<<zapros; query.next(); QString d = "INSERT INTO Audit VALUES('"; query.exec(d+"0','" +LoginRabotnika+ "','Работник','Изменение данных поручителя','"+idguarantor+"','поручитель','0',datetime('now'))"); query.next(); ui->lineedit->hide(); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->lineedit_4->hide(); ui->lineedit_5->hide(); ui->lineedit_10->hide(); ui->lineedit_11->hide(); ui->lineedit_12->hide(); ui->lineedit_13->hide(); ui->lineedit_14->hide(); ui->lineedit_15->hide(); ui->lineedit_16->hide(); ui->lineedit_6->hide(); ui->label->settext("данные поручителя успешно изменены"); ui->label->repaint(); next->hide(); updatepassword.h #ifndef UPDATEPASSWORD_H #define UPDATEPASSWORD_H #include <QMainWindow> #include "clientform.h" #include "mainwindow.h" #include <QCryptographicHash> namespace Ui class UpDatePassword; //Класс изменения пароля клиента самим клиентом class UpDatePassword : public QMainWindow Q_OBJECT public: explicit UpDatePassword(QString idclient, QWidget *parent = 0); ~UpDatePassword(); QString idclienta,passwordpol,name,login; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked();

118 118 void on_pushbutton_2_clicked(); private: Ui::UpDatePassword *ui; ; #endif // UPDATEPASSWORD_H updatepassword.cpp #include "updatepassword.h" #include "ui_updatepassword.h" UpDatePassword::UpDatePassword(QString idclient, QWidget *parent) : QMainWindow(parent), ui(new Ui::UpDatePassword) ui->setupui(this); idclienta=idclient; QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "SELECT* From Password WHERE idclient='"; query.exec(a+idclient+"'"); query.next(); PasswordPol=query.value(query.record().indexOf("Password")).toString();//Стар ы пароль пользователя Login=query.value(query.record().indexOf("Login")).toString();//Логин QString b = "Select* From Clients WHERE id="; query.exec(b+"'"+idclienta+"'"); query.next(); Name = query.value(query.record().indexof("name")).tostring(); ui->lineedit->setplaceholdertext("старый пароль"); ui->lineedit_2->setplaceholdertext("новый пароль"); ui->lineedit_3->setplaceholdertext("новый пароль еще раз"); ui->label->hide(); UpDatePassword::~UpDatePassword() delete ui; //Функция возвращения к основному окну клиента банка void UpDatePassword::on_action_triggered() ClientForm* cliform = new ClientForm(Name,idClienta); cliform->show(); this->close(); //Функция возвращения смены пользователя void UpDatePassword::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close();

119 119 void UpDatePassword::on_action_3_triggered() close(); void UpDatePassword::on_pushButton_clicked() on_action_triggered(); //Функция обновления пароля клиента в базе данных void UpDatePassword::on_pushButton_2_clicked() QCryptographicHash* hash; QString PasswordVvod = ui->lineedit->text(); QByteArray result = hash- >hash(passwordvvod.tolatin1(),qcryptographichash::sha1); QString Password = result.tohex(); if(password!=passwordpol) QMessageBox msgbox; msgbox.settext("старый пароль не верен.\nпопробуйте еще раз."); msgbox.exec(); QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString d = "INSERT INTO Audit VALUES('"; QString zapros2 =d+idclienta+"','"+ Login+ "','Клиент','Ввод неверного пароля при изменении','"+idclienta+"','клиент','"+login+"',datetime('now'))" ; query.exec(zapros2); else if(ui->lineedit_3->text()!=ui->lineedit_2->text()) QMessageBox msgbox; msgbox.settext("пароли не совпадают.\nпопробуйте еще раз."); msgbox.exec(); else QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QCryptographicHash* hash; QString PasswordPol = ui->lineedit_2->text(); QByteArray result = hash- >hash(passwordpol.tolatin1(),qcryptographichash::sha1); QString Password = result.tohex(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "UPDATE Password SET Password='"; QString zapros = a+password+"' WHERE idclient="+idclienta; query.exec(zapros); qdebug()<<zapros; query.next(); QString d = "INSERT INTO Audit VALUES('";

120 120 QString zapros2 =d+idclienta+"','"+ Login+ "','Клиент','Изменение пароля','"+idclienta+"','клиент','"+login+"',datetime('now'))" ; query.exec(zapros2); ui->lineedit->hide(); ui->lineedit_2->hide(); ui->lineedit_3->hide(); ui->label->show(); ui->label->settext("пароль успешно изменен"); ui->label->repaint(); ui->pushbutton_2->hide(); updatepasswordrabotnik.h #ifndef UPDATEPASSWORDRABOTNIK_H #define UPDATEPASSWORDRABOTNIK_H #include <QMainWindow> #include <rabotnikbankaform.h> #include "mainwindow.h" #include <QCryptographicHash> namespace Ui class UpDatePasswordRabotnik; //Класс изменения пароля клиента работником банка class UpDatePasswordRabotnik : public QMainWindow Q_OBJECT public: explicit UpDatePasswordRabotnik(QString Login, QWidget *parent = 0); ~UpDatePasswordRabotnik(); QPushButton* next; QString idclient,loginrabotnika,name,family; private slots: void on_action_triggered(); void on_action_2_triggered(); void on_action_3_triggered(); void on_pushbutton_clicked(); void on_pushbutton_2_clicked(); void on_next_clicked(); private: Ui::UpDatePasswordRabotnik *ui; ; #endif // UPDATEPASSWORDRABOTNIK_H updatepasswordrabotnik.cpp

121 121 #include "updatepasswordrabotnik.h" #include "ui_updatepasswordrabotnik.h" UpDatePasswordRabotnik::UpDatePasswordRabotnik(QString Login, QWidget *parent) : QMainWindow(parent), ui(new Ui::UpDatePasswordRabotnik) ui->setupui(this); LoginRabotnika=Login; ui->lineedit->setplaceholdertext("имя"); ui->lineedit_2->setplaceholdertext("фамилия"); ui->lineedit_3->setplaceholdertext("серия"); ui->lineedit_4->setplaceholdertext("номер"); UpDatePasswordRabotnik::~UpDatePasswordRabotnik() delete ui; //Функция возвращения к основному окну работника банка void UpDatePasswordRabotnik::on_action_triggered() RabotnikBankaForm* rbf = new RabotnikBankaForm(LoginRabotnika); rbf->show(); this->close(); //Функция смены пользователя void UpDatePasswordRabotnik::on_action_2_triggered() MainWindow* w = new MainWindow(); w->show(); this->close(); void UpDatePasswordRabotnik::on_action_3_triggered() close(); void UpDatePasswordRabotnik::on_pushButton_clicked() on_action_triggered(); //Функция поиска клиента, пароль которого необзодимо изменить void UpDatePasswordRabotnik::on_pushButton_2_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); Name = ui->lineedit->text(); Family = ui->lineedit_2->text(); QString Series = ui->lineedit_3->text(); QString Number = ui->lineedit_4->text(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "Select id From Clients WHERE Name="; query.exec(a+"'"+name+"' AND LastName="+"'"+Family+"' AND SeriesP="+"'"+Series+"' AND NumberP="+"'"+Number+"'"); query.next(); idclient = query.value(query.record().indexof("id")).tostring(); if(idclient.isnull())

122 122 QMessageBox msgbox; msgbox.settext("клиент не найден.\nпопробуйте еще раз."); msgbox.exec(); UpDatePasswordRabotnik* UP = new UpDatePasswordRabotnik(LoginRabotnika); UP->show(); this->close(); ui->lineedit_2->hide(); ui->lineedit_4->hide(); ui->lineedit->clear(); ui->lineedit_3->clear(); ui->label->settext("введите новый пароль:"); ui->label->repaint(); ui->lineedit->setplaceholdertext("новый пароль"); ui->lineedit_3->setplaceholdertext("новый пароль еще раз"); ui->lineedit->setechomode(qlineedit::password); ui->lineedit_3->setechomode(qlineedit::password); ui->pushbutton_2->hide(); next = new QPushButton("Сохранить",this); next->setgeometry(304,173,85,23); next->show(); connect(next,signal(clicked()),this,slot(on_next_clicked())); //Функция обновления пароля клиента в базе данных void UpDatePasswordRabotnik::on_next_clicked() QSqlDatabase db=qsqldatabase::adddatabase("qsqlite"); db.setdatabasename("creditdatabase"); QCryptographicHash* hash; QString PasswordPol = ui->lineedit->text(); QByteArray result = hash- >hash(passwordpol.tolatin1(),qcryptographichash::sha1); QString Password = result.tohex(); if(!db.open()) qdebug()<<db.lasterror(); else QSqlQuery query; QString a = "UPDATE Password SET Password='"; QString zapros = a+password+"' WHERE idclient="+idclient; query.exec(zapros); qdebug()<<zapros; query.next(); QString d = "INSERT INTO Audit VALUES('"; QString Login = Name+Family; query.exec(d+"0','" +LoginRabotnika+ "','Работник','Изменение пароля пользователя','"+idclient+"','клиент','"+login+"',datetime('now'))"); ui->lineedit->hide(); ui->lineedit_3->hide(); ui->label->settext("пароль успешно изменен"); ui->label->repaint(); next->hide();

123 123 Приложение 6. Варианты работы программы Рисунок 4.1 Вывод информации о клиенте для работника банка Рисунок 4.2Вывод информации о кредите для работника банка

124 124 Рисунок 4.3 Добавление информации о новом кленте первый этап Рисунок 4.4 Ввод информации для поиска клиента банка

125 125 Рисунок 4.5Вывод информации для клента банка Рисунок 4.6 Оплата клиентом с одного из своих счетов по одному их кредитов

АДМИНИСТРАЦИЯ ГОРОДА СМОЛЕНСКА

АДМИНИСТРАЦИЯ ГОРОДА СМОЛЕНСКА АДМИНИСТРАЦИЯ ГОРОДА СМОЛЕНСКА ПОСТАНОВЛЕНИЕ (с изменениями, внесенными постановлениями Администрации города Смоленска от 02.12.2014 2094, от 23.12.2015 284-адм, от 29.12.2015 394-адм) от 30.12.2010 920-адм

Подробнее

ПОЛИТИКА ОАО «СОГАЗ» В ОТНОШЕНИИ ОБРАБОТКИ И ЗАЩИТЫ ПЕРСОНАЛЬНЫХ ДАННЫХ. 1. Общие положения

ПОЛИТИКА ОАО «СОГАЗ» В ОТНОШЕНИИ ОБРАБОТКИ И ЗАЩИТЫ ПЕРСОНАЛЬНЫХ ДАННЫХ. 1. Общие положения Приложение к Приказу Председателя Правления ОАО «СОГАЗ» от «30» марта 2015 года 258 ПОЛИТИКА ОАО «СОГАЗ» В ОТНОШЕНИИ ОБРАБОТКИ И ЗАЩИТЫ ПЕРСОНАЛЬНЫХ ДАННЫХ 1. Общие положения Настоящая Политика в отношении

Подробнее

Система защиты информации от несанкционированного доступа «Блокхост-сеть К» Руководство пользователя

Система защиты информации от несанкционированного доступа «Блокхост-сеть К» Руководство пользователя Система защиты информации от несанкционированного доступа «Блокхост-сеть К» Руководство пользователя СЗИ «Блокхост-сеть К». Руководство пользователя. Стр. 2 Содержание 1. Общие сведения... 3 1.1. Назначение

Подробнее

➀ Информационные системы и банки данных.

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

Подробнее

1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Настоящее Положение разработано на основании требований: Федерального закона Российской Федерации от

1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Настоящее Положение разработано на основании требований: Федерального закона Российской Федерации от 1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Настоящее Положение разработано на основании требований: Федерального закона Российской Федерации от 27.07.2006 152 «О персональных данных»; Федерального закона Российской Федерации

Подробнее

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК РОССИИ)

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК РОССИИ) ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК РОССИИ) Утвержден ФСТЭК России 2013 г. МЕТОДИЧЕСКИЙ ДОКУМЕНТ МЕРЫ ЗАЩИТЫ ИНФОРМАЦИИ В ГОСУДАРСТВЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ (ПРОЕКТ) Версия

Подробнее

ПОЛОЖЕНИЕ ОБ ОБРАБОТКЕ И ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ АБОНЕНТОВ В ООО «ТКК «МАРК-ИТТ»

ПОЛОЖЕНИЕ ОБ ОБРАБОТКЕ И ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ АБОНЕНТОВ В ООО «ТКК «МАРК-ИТТ» УТВЕРЖДЕНО: Приказом Директора ООО «ТКК «Марк-ИТТ» 17 от «1» октября 2015 г. ПОЛОЖЕНИЕ ОБ ОБРАБОТКЕ И ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ АБОНЕНТОВ В ООО «ТКК «МАРК-ИТТ» 1. Общие положения 2.1. Настоящее Положение

Подробнее

Муниципальное автономное учреждение здравоохранения Городская стоматологическая поликлиника МАУЗ «Стомполиклиника»

Муниципальное автономное учреждение здравоохранения Городская стоматологическая поликлиника МАУЗ «Стомполиклиника» Муниципальное автономное учреждение здравоохранения Городская стоматологическая поликлиника МАУЗ «Стомполиклиника» УТВЕРЖДАЮ по обеспечению безопасности персональных данных при их обработке в информационной

Подробнее

Общество с ограниченной ответственностью «Телесистема «Астра»

Общество с ограниченной ответственностью «Телесистема «Астра» Общество с ограниченной ответственностью «Телесистема «Астра» УТВЕРЖДАЮ Генеральный директор ООО «Телесистема «Астра» С.Н. Черников «05» мая 2015 года ПОЛОЖЕНИЕ о политике обработки и защиты персональных

Подробнее

Правила по обеспечению информационной безопасности на рабочем месте

Правила по обеспечению информационной безопасности на рабочем месте Правила по обеспечению информационной безопасности на рабочем месте 1. Введение Настоящие правила предназначены для обязательного ознакомления выделенному в организации сотруднику, отвечающему за информационную

Подробнее

1.1. Основы работы с базами данных Базы данных и системы управления базами данных. Модели данных

1.1. Основы работы с базами данных Базы данных и системы управления базами данных. Модели данных 1.1. Основы работы с базами данных 1.1.1. Базы данных и системы управления базами данных. Модели данных База данных (БД) это именованная совокупность структурированных данных, относящихся к определенной

Подробнее

СИСТЕМА ЗАЩИТЫ ИН ФОРМАЦИИ ОТ НЕСАНКЦИОНИРОВАННОГО ДОС ТУПА «СТРАЖ NT»

СИСТЕМА ЗАЩИТЫ ИН ФОРМАЦИИ ОТ НЕСАНКЦИОНИРОВАННОГО ДОС ТУПА «СТРАЖ NT» СИСТЕМА ЗАЩИТЫ ИНФОРМАЦИИ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА «СТРАЖ NT» ( Версия 2.5 ) Руководство пользователя 2 Оглавление АННОТАЦИЯ...3 РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЕЙ И ВХОД В СИСТЕМУ...4 РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Подробнее

Дж.Боуман, С.Эмерсон, М.Дарновски ПРАКТИЧЕСКОЕ РУКОВОДСТВО ПО SQL Эта книга поможет даже в тех случаях, когда бесполезно самое лучшее руководство

Дж.Боуман, С.Эмерсон, М.Дарновски ПРАКТИЧЕСКОЕ РУКОВОДСТВО ПО SQL Эта книга поможет даже в тех случаях, когда бесполезно самое лучшее руководство Дж.Боуман, С.Эмерсон, М.Дарновски ПРАКТИЧЕСКОЕ РУКОВОДСТВО ПО SQL Эта книга поможет даже в тех случаях, когда бесполезно самое лучшее руководство пользователя. Здесь раскрываются темы, которые часто пропускаются

Подробнее

Политика обработки персональных данных в ООО «Голдман Сакс Банк»

Политика обработки персональных данных в ООО «Голдман Сакс Банк» УТВЕРЖДЕНО Приказом 06-12ОД от «25» января 2012 года Политика обработки персональных данных в ООО «Голдман Сакс Банк» Москва 2012 1 ВВЕДЕНИЕ Настоящая Политика обработки персональных данных в ООО «Голдман

Подробнее

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК России) П Р И К А З. 11 февраля 2013 г. Москва 17

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК России) П Р И К А З. 11 февраля 2013 г. Москва 17 ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК России) П Р И К А З 11 февраля 2013 г. Москва 17 Об утверждении Требований о защите информации, не составляющей государственную тайну, содержащейся

Подробнее

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК РОССИИ)

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК РОССИИ) ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК РОССИИ) Утвержден ФСТЭК России 11 февраля 2014 г. МЕТОДИЧЕСКИЙ ДОКУМЕНТ МЕРЫ ЗАЩИТЫ ИНФОРМАЦИИ В ГОСУДАРСТВЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ

Подробнее

ПРАВИТЕЛЬСТВО УДМУРТСКОЙ РЕСПУБЛИКИ. ПОСТАНОВЛЕНИЕ от 28марта 2011г. N 76 О ЕДИНОМ РЕЕСТРЕ ГОСУДАРСТВЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ УДМУРТСКОЙ РЕСПУБЛИКИ

ПРАВИТЕЛЬСТВО УДМУРТСКОЙ РЕСПУБЛИКИ. ПОСТАНОВЛЕНИЕ от 28марта 2011г. N 76 О ЕДИНОМ РЕЕСТРЕ ГОСУДАРСТВЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ УДМУРТСКОЙ РЕСПУБЛИКИ Зарегистрировано в Управлении Минюста России по УР 6 апреля 2011 г. N RU18000201100116 ПРАВИТЕЛЬСТВО УДМУРТСКОЙ РЕСПУБЛИКИ ПОСТАНОВЛЕНИЕ от 28марта 2011г. N 76 О ЕДИНОМ РЕЕСТРЕ ГОСУДАРСТВЕННЫХ ИНФОРМАЦИОННЫХ

Подробнее

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

Политика в области обработки персональных данных Политика в области обработки персональных данных 1. Персональные данные 2. Обработка персональных данных 3. Контроль над использованием персональных данных 4. Доступ к персональным данным 5. Безопасность

Подробнее

Принятые сокращения. 1. Общие положения

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

Подробнее

Об утверждении положения о методах и способах защиты информации в информационных системах персональных данных

Об утверждении положения о методах и способах защиты информации в информационных системах персональных данных Об утверждении положения о методах и способах защиты информации в информационных системах персональных данных Приказ ФСТЭК России от 5.02.2010 N 58 зарегистрирован в Минюсте России 19.02.2010 16456 В соответствии

Подробнее

ПОЛИТИКА ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ информационных систем персональных данных в Финансовом управлении Администрации Локомотивного ГО

ПОЛИТИКА ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ информационных систем персональных данных в Финансовом управлении Администрации Локомотивного ГО УТВЕРЖДАЮ Начальник Финансового управления Администрации Локомотивного ГО / Е.М. Попова / (подпись) «22» марта 2016 г. ПОЛИТИКА ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ информационных систем персональных данных в Финансовом

Подробнее

Зарегистрировано в Минюсте России 14 мая 2013 г. N ПРИКАЗ от 18 февраля 2013 г. N 21

Зарегистрировано в Минюсте России 14 мая 2013 г. N ПРИКАЗ от 18 февраля 2013 г. N 21 Зарегистрировано в Минюсте России 14 мая 2013 г. N 28375 ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ ПРИКАЗ от 18 февраля 2013 г. N 21 ОБ УТВЕРЖДЕНИИ СОСТАВА И СОДЕРЖАНИЯ ОРГАНИЗАЦИОННЫХ

Подробнее

Политика обработки персональных данных в ПАО «Ростелеком» (Редакция 1)

Политика обработки персональных данных в ПАО «Ростелеком» (Редакция 1) Приложение 1 УТВЕРЖДЕНО Приказом ПАО «Ростелеком» от «24» декабря 2015 01/01/1150-15 Политика обработки персональных данных (Редакция 1) Москва 2015 г. Редакция: 1/2015 бизнес-процесса: БП.ПП.10 Стр. 2

Подробнее

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

Администратор информационного ресурса работник университета, отвечающий за сохранность информационного ресурса. Антивирусные базы файлы, используемые Администратор информационного ресурса работник университета, отвечающий за сохранность информационного ресурса. Антивирусные базы файлы, используемые антивирусным программным обеспечением (ПО) при поиске

Подробнее

ЕДИНАЯ ИНФОРМАЦИОННАЯ СИСТЕМА В СФЕРЕ ЗАКУПОК. Руководство пользователя. Оператор информационной системы, взаимодействующей с ЕИС

ЕДИНАЯ ИНФОРМАЦИОННАЯ СИСТЕМА В СФЕРЕ ЗАКУПОК. Руководство пользователя. Оператор информационной системы, взаимодействующей с ЕИС ЕДИНАЯ ИНФОРМАЦИОННАЯ СИСТЕМА В СФЕРЕ ЗАКУПОК Руководство пользователя Оператор информационной системы, взаимодействующей с ЕИС Версия 6.2 Листов: 33 Москва 2016 Код документа: Стр. 2 АННОТАЦИЯ Настоящий

Подробнее

ПОЛИТИКА В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В КПК "ОДИССЕЙ"

ПОЛИТИКА В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В КПК ОДИССЕЙ УТВЕРЖДАЮ Председатель Правления КПК "ОДИССЕЙ" А. В. Сарапулов 05.08.2015 М.П. ПОЛИТИКА В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В КПК "ОДИССЕЙ" 1. Общие положения 1.1. Политика в отношении обработки

Подробнее

1. Общие положения 1.1. Положение о локальной вычислительной сети Государственного бюджетного образовательного учреждения среднего профессионального

1. Общие положения 1.1. Положение о локальной вычислительной сети Государственного бюджетного образовательного учреждения среднего профессионального 1. Общие положения 1.1. Положение о локальной вычислительной сети Государственного бюджетного образовательного учреждения среднего профессионального образования «Нижегородский автотранспортный техникум»

Подробнее

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК России) П Р И К А З. «18» февраля 2013 г. Москва 21

ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК России) П Р И К А З. «18» февраля 2013 г. Москва 21 ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ТЕХНИЧЕСКОМУ И ЭКСПОРТНОМУ КОНТРОЛЮ (ФСТЭК России) П Р И К А З «18» февраля 2013 г. Москва 21 Об утверждении Состава и содержания организационных и технических мер по обеспечению

Подробнее

Базы данных в СУБД Oracle Database 11g Express Edition

Базы данных в СУБД Oracle Database 11g Express Edition Лабораторная работа Базы данных в СУБД Oracle Database 11g Express Edition Цель занятия: Практическое использование серверных баз СУБД Oracle Database 11g Express Edition. Изучение установки и администрирования

Подробнее

Установка Print Audit 6 - Пошаговое руководство

Установка Print Audit 6 - Пошаговое руководство 1 Установка Print Audit 6 - Пошаговое руководство ВНИМАНИЕ! ПЕРЕД НАЧАЛОМ УСТАНОВКИ PRINT AUDIT 6 ОЗНАКОМТЕСЬ С СОДЕРЖАНИЕМ НАСТОЯЩЕГО РУКОВОДСТВА Настольное приложение Print Audit 6 необходимо устанавливать

Подробнее

Система Управления Базой Данных СУБД Microsoft ACCESS

Система Управления Базой Данных СУБД Microsoft ACCESS ACCESS Система Управления Базой Данных СУБД Microsoft ACCESS Основные вопросы лекции: 1. Базы данных. Основные понятия, классификация 2. СУБД Microsoft ACCESS. Общая характеристика возможностей. Основные

Подробнее

Руководство пользователя. по работе с блоком ГИС ГМП на базе ПО «Шафл#Шлюз»

Руководство пользователя. по работе с блоком ГИС ГМП на базе ПО «Шафл#Шлюз» Руководство пользователя по работе с блоком ГИС ГМП на базе ПО «Шафл#Шлюз» Содержание Содержание... 2 1. Введение... 3 2. Подготовка к работе... 4 2.1. Запуск системы РСМЭВ... 4 2.2. Завершение сеанса

Подробнее

ПОЛИТИКА В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В ООО "К50"

ПОЛИТИКА В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В ООО К50 УТВЕРЖДАЮ Генеральный Директор ООО "К50" Г. О. Терновский 31.08.2016 М.П. ПОЛИТИКА В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В ООО "К50" 1. Общие положения 1.1. Политика в отношении обработки персональных

Подробнее

СРЕДСТВО ДОВЕРЕННОЙ ЗАГРУЗКИ Dallas Lock. Руководство оператора (пользователя)

СРЕДСТВО ДОВЕРЕННОЙ ЗАГРУЗКИ Dallas Lock. Руководство оператора (пользователя) УТВЕРЖДЕН ПФНА.501410.003 34-ЛУ СРЕДСТВО ДОВЕРЕННОЙ ЗАГРУЗКИ Dallas Lock Руководство оператора (пользователя) ПФНА.501410.003 34 Листов 12 2016 Содержание ВВЕДЕНИЕ... 3 1 НАЗНАЧЕНИЕ СДЗ DALLAS LOCK...

Подробнее

Политика в области обработки и защиты персональных данных Общества с ограниченной ответственностью «Инвестиционная компания «Фонтвьель»

Политика в области обработки и защиты персональных данных Общества с ограниченной ответственностью «Инвестиционная компания «Фонтвьель» УТВЕРЖДЕН приказом 19/1 от «27» апреля 2016 г Генеральный директор ООО «ИК «Фонтвьель» (Шамраев С.И.) Политика в области обработки и защиты персональных данных Общества с ограниченной ответственностью

Подробнее

Аккорд АМДЗ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Аккорд АМДЗ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ УТВЕРЖДЕН 11443195.4012-006 -ЛУ Программно-аппаратный комплекс средств защиты информации от НСД для ПЭВМ (PC) Аккорд АМДЗ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 11443195.4012-006 34 03 Литера О 1 СОДЕРЖАНИЕ 1. НАЗНАЧЕНИЕ...3

Подробнее

А. Е. Киреенко РАЗРАБОТКА МЕТОДА И АЛГОРИТМА КОНТРОЛЯ ИНФОРМАЦИОННЫХ ПОТОКОВ В ОПЕРАЦИОННЫХ СИСТЕМАХ С ДИСКРЕЦИОННЫМ РАЗГРАНИЧЕНИЕМ ДОСТУПА К ОБЪЕКТАМ

А. Е. Киреенко РАЗРАБОТКА МЕТОДА И АЛГОРИТМА КОНТРОЛЯ ИНФОРМАЦИОННЫХ ПОТОКОВ В ОПЕРАЦИОННЫХ СИСТЕМАХ С ДИСКРЕЦИОННЫМ РАЗГРАНИЧЕНИЕМ ДОСТУПА К ОБЪЕКТАМ А Е Киреенко РАЗРАБОТКА МЕТОДА И АЛГОРИТМА КОНТРОЛЯ ИНФОРМАЦИОННЫХ ПОТОКОВ В ОПЕРАЦИОННЫХ СИСТЕМАХ С ДИСКРЕЦИОННЫМ РАЗГРАНИЧЕНИЕМ ДОСТУПА К ОБЪЕКТАМ Автоматизированные системы обработки информации в настоящее

Подробнее

ОСНОВНЫЕ ТЕРМИНЫ. Записи - Однотипные сведения о различных объектах БД.

ОСНОВНЫЕ ТЕРМИНЫ. Записи - Однотипные сведения о различных объектах БД. РАБОТА С СИСТЕМОЙ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MICROSOFT ACCESS 1 ОСНОВНЫЕ ТЕРМИНЫ Запрос - Запросы являются мощным средством обработки данных, хранимых в таблицах Access. С помощью запросов можно просматривать,

Подробнее

Система менеджмента качества

Система менеджмента качества МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» (ФГБОУ ВО

Подробнее

Руководящий документ разработан в дополнение ГОСТ 34.003-90, ГОСТ 34.601-90, РД 50-680-88, РД 50-34.680-90 и других документов.

Руководящий документ разработан в дополнение ГОСТ 34.003-90, ГОСТ 34.601-90, РД 50-680-88, РД 50-34.680-90 и других документов. Руководящий документ Автоматизированные системы. Защита от несанкционированного доступа к информации Классификация автоматизированных систем и требования по защите информации Утверждено решением председателя

Подробнее

ГОСУДАРСТВЕННАЯ ТЕХНИЧЕСКАЯ КОМИССИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ. Руководящий документ

ГОСУДАРСТВЕННАЯ ТЕХНИЧЕСКАЯ КОМИССИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ. Руководящий документ ГОСУДАРСТВЕННАЯ ТЕХНИЧЕСКАЯ КОМИССИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Руководящий документ ЗАЩИТА ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ИНФОРМАЦИИ. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ Москва 1992 2 Руководящий документ Гостехкомиссии

Подробнее

Обеспечение безопасности передачи данных по каналам связи.

Обеспечение безопасности передачи данных по каналам связи. Рекомендации безопасности Для безопасной эксплуатации программного комплекса «Кливер Мониторинг Энергии» следует соблюдать следующие рекомендации Обеспечение безопасности передачи данных по каналам связи.

Подробнее

ПЕРСПЕКТИВЫ БЕЗОПАСНОЙ ИНТЕГРАЦИИ РЕСУРСОВ В ЦИФРОВОМ ПРОСТРАНСТВЕ

ПЕРСПЕКТИВЫ БЕЗОПАСНОЙ ИНТЕГРАЦИИ РЕСУРСОВ В ЦИФРОВОМ ПРОСТРАНСТВЕ ПЕРСПЕКТИВЫ БЕЗОПАСНОЙ ИНТЕГРАЦИИ РЕСУРСОВ В ЦИФРОВОМ ПРОСТРАНСТВЕ В своем выступлении я хотел бы рассмотреть проблему санкционированного использования электронных цифровых ресурсов в процессе их интеграции

Подробнее

ЗАЩИТА ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ИНФОРМАЦИИ

ЗАЩИТА ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ИНФОРМАЦИИ ГОСТ Р 50739-95 ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ СРЕДСТВА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ ЗАЩИТА ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ИНФОРМАЦИИ ОБЩИЕ ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ

Подробнее

Служба штампов времени. Руководство пользователя

Служба штампов времени. Руководство пользователя Служба штампов времени Руководство пользователя Оглавление О программе... 3 Системные требования... 4 Установка Службы штампов времени... 5 Установка Сертификата Службы штампов времени... 5 Удаление Службы

Подробнее

Базы данных. Модели данных

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

Подробнее

Р Ф. Администрация Владимирской области. Архивный департамент П Р И К А З

Р Ф. Администрация Владимирской области. Архивный департамент П Р И К А З Р Ф Администрация Владимирской области Архивный департамент П Р И К А З 27.12.2012 80 Об утверждении организационных документов по защите персональных данных в информационных системах персональных данных,

Подробнее

Состав персональных данных

Состав персональных данных Настоящая Политика является выдержками из Положения об обработке и защите персональных данных (Утвержденного генеральным директором ОАО «ТРК «Заречный» 09.04.2013г.), и устанавливает порядок обработки

Подробнее

ÐÅÊÎÌÅÍÄÀÖÈÈ Â ÎÁËÀÑÒÈ ÑÒÀÍÄÀÐÒÈÇÀÖÈÈ ÁÀÍÊÀ ÐÎÑÑÈÈ ÎÁÅÑÏÅ ÅÍÈÅ ÈÍÔÎÐÌÀÖÈÎÍÍÎÉ ÁÅÇÎÏÀÑÍÎÑÒÈ ÎÐÃÀÍÈÇÀÖÈÉ ÁÀÍÊÎÂÑÊÎÉ ÑÈÑÒÅÌÛ ÐÎÑÑÈÉÑÊÎÉ ÔÅÄÅÐÀÖÈÈ

ÐÅÊÎÌÅÍÄÀÖÈÈ Â ÎÁËÀÑÒÈ ÑÒÀÍÄÀÐÒÈÇÀÖÈÈ ÁÀÍÊÀ ÐÎÑÑÈÈ ÎÁÅÑÏÅ ÅÍÈÅ ÈÍÔÎÐÌÀÖÈÎÍÍÎÉ ÁÅÇÎÏÀÑÍÎÑÒÈ ÎÐÃÀÍÈÇÀÖÈÉ ÁÀÍÊÎÂÑÊÎÉ ÑÈÑÒÅÌÛ ÐÎÑÑÈÉÑÊÎÉ ÔÅÄÅÐÀÖÈÈ ÐÅÊÎÌÅÍÄÀÖÈÈ Â ÎÁËÀÑÒÈ ÑÒÀÍÄÀÐÒÈÇÀÖÈÈ ÁÀÍÊÀ ÐÎÑÑÈÈ ÐÑ ÁÐ ÈÁÁÑ-3-200 ÎÁÅÑÏÅ ÅÍÈÅ ÈÍÔÎÐÌÀÖÈÎÍÍÎÉ ÁÅÇÎÏÀÑÍÎÑÒÈ ÎÐÃÀÍÈÇÀÖÈÉ ÁÀÍÊÎÂÑÊÎÉ ÑÈÑÒÅÌÛ ÐÎÑÑÈÉÑÊÎÉ ÔÅÄÅÐÀÖÈÈ ÒÐÅÁÎÂÀÍÈß ÏÎ ÎÁÅÑÏÅ ÅÍÈÞ ÁÅÇÎÏÀÑÍÎÑÒÈ ÏÅÐÑÎÍÀËÜÍÛÕ

Подробнее

СОДЕРЖАНИЕ 1 ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ ПОСТРОЕНИЕ ИНФОЛОГИЧЕСКОЙ МОДЕЛИ... 5

СОДЕРЖАНИЕ 1 ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ ПОСТРОЕНИЕ ИНФОЛОГИЧЕСКОЙ МОДЕЛИ... 5 СОДЕРЖАНИЕ ВВЕДЕНИЕ... 3 1 ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ... 4 2 ПОСТРОЕНИЕ ИНФОЛОГИЧЕСКОЙ МОДЕЛИ... 5 3 ДАТАЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ... 6 3.1 Выбор системы управления

Подробнее

Интегрированный комплекс безопасности «КОДОС» Программа «Проходная ǁ»

Интегрированный комплекс безопасности «КОДОС» Программа «Проходная ǁ» ОАО «Бауманн» УТВЕРЖДЕН RU.74533456.00005-02 34 01-ЛУ Интегрированный комплекс безопасности «КОДОС» Программа «Проходная ǁ» Руководство оператора RU.74533456.00005-02 34 01 2015 СОДЕРЖАНИЕ 1 ОБЩИЕ ПОЛОЖЕНИЯ...

Подробнее

Установка АСУ МС Demo. Все права защищены. «ПАЛИТРА СИСТЕМ», ООО, Москва, Россия All rights reserved. Palitra System Ltd.

Установка АСУ МС Demo. Все права защищены. «ПАЛИТРА СИСТЕМ», ООО, Москва, Россия All rights reserved. Palitra System Ltd. Установка АСУ МС Demo Все права защищены. «ПАЛИТРА СИСТЕМ», ООО, Москва, Россия All rights reserved. Palitra System Ltd., Moscow, Russia СОДЕРЖАНИЕ 1.ВВЕДЕНИЕ 3 2. ОСНОВНЫЕ ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ 4 3.

Подробнее

2.1 Персональные данные относятся к конфиденциальной информации, порядок 1

2.1 Персональные данные относятся к конфиденциальной информации, порядок 1 2.1 Персональные данные относятся к конфиденциальной информации, порядок 1 работы с ними регламентирован Федеральным законом от 27 июля 2006 г. 152-ФЗ «О персональных данных» и осуществляется с соблюдением

Подробнее

ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ

ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ Приложение 4 к Приказу 03-ПДн от 25 августа 2016 ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ г. Москва, 2016 г. СОДЕРЖАНИЕ 1 ОБЩИЕ ПОЛОЖЕНИЯ... 3 2 ПРИНЦИПЫ И УСЛОВИЯ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ

Подробнее

2. Источники угроз информационной безопасности

2. Источники угроз информационной безопасности Приложение 1 к приказу КГИОП от 03.05.2012 _8-196_ Инструкция по информационной безопасности в сфере информационного обмена с использованием международных информационных сетей, в том числе «Интернет» 1.

Подробнее

Бастион-2 АРМ УРВ Про. Версия Руководство администратора

Бастион-2 АРМ УРВ Про. Версия Руководство администратора Бастион-2 АРМ УРВ Про Версия 1.6.7 Руководство администратора Бастион-2 АРМ УРВ Про. Руководство администратора 2 Оглавление Общая информация... 3 1.1 Назначение документа... 3 1.2 Назначение и основные

Подробнее

ПОЛОЖЕНИЕ об обработке персональных данных клиентов «НоваховКапиталБанк» (ЗАО)

ПОЛОЖЕНИЕ об обработке персональных данных клиентов «НоваховКапиталБанк» (ЗАО) УТВЕРЖДЕНО Решением Правления «НоваховКапиталБанк» (ЗАО) (Протокол 18 от 31.05.2011) Председатель Правления И.Г. Русанова ПОЛОЖЕНИЕ об обработке персональных данных клиентов «НоваховКапиталБанк» (ЗАО)

Подробнее

Приложение к распоряжению Днпартамента информационных технологий города Москвы от 2013 г.

Приложение к распоряжению Днпартамента информационных технологий города Москвы от 2013 г. Приложение к распоряжению Днпартамента информационных технологий города Москвы от 2013 г. Комплексные методические рекомендации органам исполнительной власти города Москвы, государственным учреждениям

Подробнее

Средство защиты информации от несанкционированного доступа «Блокхост-сеть К»

Средство защиты информации от несанкционированного доступа «Блокхост-сеть К» Средство защиты информации от несанкционированного доступа «Блокхост-сеть К» Содержание 2 1. Общие сведения... 3 1.1. Назначение СЗИ «Блокхост-сеть К»... 3 1.2. Необходимая информация... 3 2. Вход в систему...

Подробнее

2 Основные понятия, используемые в настоящем Положении

2 Основные понятия, используемые в настоящем Положении - Постановление Правительства Российской Федерации от 17 ноября 2007 г. 781 «Об утверждении Положения об обеспечении безопасности персональных данных при их обработке в информационных системах персональных

Подробнее

ПК «Энергосфера» Инсталлятор. Руководство оператора Версия 6.5 ПБКМ

ПК «Энергосфера» Инсталлятор. Руководство оператора Версия 6.5 ПБКМ Инженерная компания «Прософт-Системы» ПК «Энергосфера» Инсталлятор Руководство оператора Версия 6.5 ПБКМ.33314-01 34 01 Екатеринбург 2012 Содержание 1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ...3 2. УСТАНОВКА

Подробнее

Правительство Санкт-Петербурга Комитет по информатизации и связи СПб ГУП «СПб ИАЦ»

Правительство Санкт-Петербурга Комитет по информатизации и связи СПб ГУП «СПб ИАЦ» Правительство Санкт-Петербурга Комитет по информатизации и связи СПб ГУП «СПб ИАЦ» Межведомственная автоматизированная информационная система предоставления в Санкт-Петербурге государственных и муниципальных

Подробнее

ГОСУДАРСТВЕННАЯ ТЕХНИЧЕСКАЯ КОМИССИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ. Руководящий документ

ГОСУДАРСТВЕННАЯ ТЕХНИЧЕСКАЯ КОМИССИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ. Руководящий документ ГОСУДАРСТВЕННАЯ ТЕХНИЧЕСКАЯ КОМИССИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Руководящий документ СРЕДСТВА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ. МЕЖСЕТЕВЫЕ ЭКРАНЫ. ЗАЩИТА ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ИНФОРМАЦИИ. ПОКАЗАТЕЛИ ЗАЩИЩЕННОСТИ

Подробнее

ПОЛИТИКА ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В КОМПАНИИ «IDPERSONNEL»

ПОЛИТИКА ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В КОМПАНИИ «IDPERSONNEL» ПОЛИТИКА ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ В КОМПАНИИ «IDPERSONNEL» Казань 2014 год www.idpersonnel.ru 1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Настоящая Политика определяет условия и порядок действий в Компании «IDPersonnel»

Подробнее

АННОТАЦИИ РАБОЧИХ ПРОГРАММ ПРОФЕССИОНАЛЬНЫХ МОДУЛЕЙ

АННОТАЦИИ РАБОЧИХ ПРОГРАММ ПРОФЕССИОНАЛЬНЫХ МОДУЛЕЙ 1 2 АННОТАЦИИ РАБОЧИХ ПРОГРАММ ПРОФЕССИОНАЛЬНЫХ МОДУЛЕЙ основной профессиональной образовательной программы среднего профессионального образования базового подготовки по специальности среднего профессионального

Подробнее

Система «ibank 2» для клиентов юридических лиц

Система «ibank 2» для клиентов юридических лиц Система «ibank 2» для клиентов юридических лиц Краткое руководство Версия 2.0.12 Содержание Регистрация клиента юридического лица...................... 2 Текущая работа......................................

Подробнее

ПРАВИЛА проведения внутренних проверок в области обработки персональных данных в Законодательной Думе Томской области 1.

ПРАВИЛА проведения внутренних проверок в области обработки персональных данных в Законодательной Думе Томской области 1. Приложение 3 к распоряжению Председателя Законодательной Думы Томской области от 28.04.2014 106-п ПРАВИЛА проведения внутренних проверок в области обработки персональных данных в Законодательной Думе Томской

Подробнее

Правила защиты информации о пользователях сайта «Звезда Удачи»

Правила защиты информации о пользователях сайта «Звезда Удачи» Правила защиты информации о пользователях сайта «Звезда Удачи» 1. Общие положения 1.1. Настоящие Правила являются официальным документом оргкомитета конкурса «Звезда Удачи». 1.2. Целью настоящих Правил

Подробнее

9.4. При обработке персональных данных, осуществляемой без использования средств автоматизации, выполняются требования, установленные постановлением

9.4. При обработке персональных данных, осуществляемой без использования средств автоматизации, выполняются требования, установленные постановлением ПОЛИТИКА Общества с ограниченной ответственностью «Компания 2 КОМ» в отношении обработки персональных данных и реализации требований к защите персональных данных. 1. Общее положение 1.1. Настоящий документ

Подробнее

ПОЛИТИКА в отношении обработки персональных данных

ПОЛИТИКА в отношении обработки персональных данных Открытое акционерное общество «Промсвязьбанк» У Т В Е Р Ж Д Е Н Приказом Президента ОАО «Промсвязьбанк» от 24 декабря 2012 г. 245/6 12-67-01 ПОЛИТИКА в отношении обработки персональных данных (редакция

Подробнее

ПОЛИТИКА ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ ООО «ГРУППА АГРОКОМ»

ПОЛИТИКА ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ ООО «ГРУППА АГРОКОМ» ПОЛИТИКА ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ ООО «ГРУППА АГРОКОМ» СОДЕРЖАНИЕ: 1. Цель..2 2. Определения, термины, сокращения.2 3. Ссылки..3 4. Общие положения...3 5. Основные цели и принципы обработки ПДн...3

Подробнее

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЗАЩИТЫ ИСПОЛНЯЕМЫХ ФАЙЛОВ ЭЛЕКТРОННЫМИ КЛЮЧАМИ

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЗАЩИТЫ ИСПОЛНЯЕМЫХ ФАЙЛОВ ЭЛЕКТРОННЫМИ КЛЮЧАМИ УДК 519.242:004.42 С.В. ДЕМЬЯНЕНКО, Н.Н. САДОВОЙ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЗАЩИТЫ ИСПОЛНЯЕМЫХ ФАЙЛОВ ЭЛЕКТРОННЫМИ КЛЮЧАМИ Описывается программно-аппаратный метод защиты программного обеспечения с электронными

Подробнее

ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОСТАНОВЛЕНИЕ от 17 ноября 2007 г. N 781

ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ. ПОСТАНОВЛЕНИЕ от 17 ноября 2007 г. N 781 ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ ПОСТАНОВЛЕНИЕ от 17 ноября 2007 г. N 781 ОБ УТВЕРЖДЕНИИ ПОЛОЖЕНИЯ ОБ ОБЕСПЕЧЕНИИ БЕЗОПАСНОСТИ ПЕРСОНАЛЬНЫХ ДАННЫХ ПРИ ИХ ОБРАБОТКЕ В ИНФОРМАЦИОННЫХ СИСТЕМАХ ПЕРСОНАЛЬНЫХ

Подробнее

Утверждено решением председателя Государственной технической комиссии при Президенте Российской Федерации от 4 июня 1999 г. 114

Утверждено решением председателя Государственной технической комиссии при Президенте Российской Федерации от 4 июня 1999 г. 114 Руководящий документ Защита от несанкционированного доступа к информации Часть 1. Программное обеспечение средств защиты информации Классификация по уровню контроля отсутствия недекларированных возможностей

Подробнее

Лабораторная работа 5. Хранимые процедуры

Лабораторная работа 5. Хранимые процедуры Лабораторная работа 5. Хранимые процедуры Цель работы: научиться создавать хранимые процедуры в среде SQL Server Management Studio. Теоретические сведения Хранимая процедура SQL-запрос, который имеет параметры,

Подробнее

Автоматизированная система предпроектного обследования информационной системы персональных данных «АИСТ-П»

Автоматизированная система предпроектного обследования информационной системы персональных данных «АИСТ-П» 14 УДК 004.056.5 А.А. Шелупанов, В.Г. Миронова, С.С. Ерохин, А.А. Мицель Автоматизированная система предпроектного обследования информационной системы персональных данных «АИСТ-П» Рассматривается автоматизация

Подробнее

ПОЛИТИКА ПАО «БАЛТИЙСКИЙ БАНК» ПО ОБРАБОТКЕ ПЕРСОНАЛЬНЫХ ДАННЫХ И РЕАЛИЗАЦИИ ТРЕБОВАНИЙ К ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ

ПОЛИТИКА ПАО «БАЛТИЙСКИЙ БАНК» ПО ОБРАБОТКЕ ПЕРСОНАЛЬНЫХ ДАННЫХ И РЕАЛИЗАЦИИ ТРЕБОВАНИЙ К ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ Приложение 1 к Приказу от «04» сентября 2015 г. 954 ПОЛИТИКА ПАО «БАЛТИЙСКИЙ БАНК» ПО ОБРАБОТКЕ ПЕРСОНАЛЬНЫХ ДАННЫХ И РЕАЛИЗАЦИИ ТРЕБОВАНИЙ К ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ Санкт-Петербург 2015 2 1. Настоящая

Подробнее

Утверждено решением председателя Государственной технической комиссии при Президенте Российской Федерации от 25 июля 1997 г.

Утверждено решением председателя Государственной технической комиссии при Президенте Российской Федерации от 25 июля 1997 г. Руководящий документ Средства вычислительной техники. Межсетевые экраны Защита от несанкционированного доступа к информации Показатели защищенности от несанкционированного доступа к информации Утверждено

Подробнее

ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ

ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ Приложение 4 к Приказу 3 от 1 февраля 2013 ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ Курган, 2013 СОДЕРЖАНИЕ 1 Общие положения... 3 2 Принципы и условия обработки персональных данных...

Подробнее

Инструкция пользователю по вводу данных и работе в личном кабинете бюро кредитных историй МикроФинанс

Инструкция пользователю по вводу данных и работе в личном кабинете бюро кредитных историй МикроФинанс Инструкция пользователю по вводу данных и работе в личном кабинете бюро кредитных историй МикроФинанс Версия 1.0 от 04.03.2015 Оглавление Общее описание... 3 Ввод информации по физическим лицам... 3 1.

Подробнее

С Л У Ж Б А Р Е З Е Р В Н О Г О К О ПИРОВАН ИЯ

С Л У Ж Б А Р Е З Е Р В Н О Г О К О ПИРОВАН ИЯ ООО НПП ЭЛЕКОМ Информационно-вычислительный комплекс ЭЛЕКОМ-Информ С Л У Ж Б А Р Е З Е Р В Н О Г О К О ПИРОВАН ИЯ Описание и руководство пользователя 2014 год ОГЛАВЛЕНИЕ Назначение службы резервного копирования

Подробнее

Удостоверяющий Центр ОАО «МТС-Банк» Руководство пользователя

Удостоверяющий Центр ОАО «МТС-Банк» Руководство пользователя Удостоверяющий Центр ОАО «МТС-Банк» Руководство пользователя 1. Требования к системе для работы с Удостоверяющим Центром (УЦ). Для работы с Удостоверяющим Центром необходимо следующее программное обеспечение:

Подробнее

3. Условия и порядок предоставления займа

3. Условия и порядок предоставления займа 10) «Правила обработки персональных данных» - Правила обработки персональных данных и иной информации в ООО МФО «Нацкредит», утвержденные Обществом и определяющие порядок и условия обработки персональных

Подробнее

ПОЛИТИКА компании в отношении обработки персональных данных

ПОЛИТИКА компании в отношении обработки персональных данных Приложение к приказу генерального директора ООО «Каркаде» «О назначении лиц, ответственных за обработку и защиту персональных данных» ПОЛИТИКА компании в отношении обработки персональных данных > www.carcade.com

Подробнее

Защита электронных документов, отчуждаемых отчетов и бумажных копий документов от несанкционированного доступа

Защита электронных документов, отчуждаемых отчетов и бумажных копий документов от несанкционированного доступа Защита электронных документов, отчуждаемых отчетов и бумажных копий документов от несанкционированного доступа Дмитрий Сивохин, Директор департамента продаж и услуг Для чего нужен

Подробнее

Положение о защите персональных данных физических лиц, являющихся контрагентами (представителями контрагентов) ООО «БГК»

Положение о защите персональных данных физических лиц, являющихся контрагентами (представителями контрагентов) ООО «БГК» Приложение к приказу 503 от 26.12.2014г. ПОЛОЖЕНИЕ О ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ ФИЗИЧЕСКИХ ЛИЦ, ЯВЛЯЮЩИХСЯ КОНТРАГЕНТАМИ (ПРЕДСТАВИТЕЛЯМИ КОНТРАГЕНТОВ) ОБЩЕСТВА С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ «БАШКИРСКАЯ

Подробнее

ЧАСТНАЯ МОДЕЛЬ УГРОЗ ИСПДН : СОТРУДНИКИ И КОНТРАГЕНТЫ

ЧАСТНАЯ МОДЕЛЬ УГРОЗ ИСПДН : СОТРУДНИКИ И КОНТРАГЕНТЫ УТВЕРЖДАЮ Председатель Правления КПК ФИО 0 г. ЧАСТНАЯ МОДЕЛЬ УГРОЗ ИСПДН : СОТРУДНИКИ И КОНТРАГЕНТЫ Настоящий документ подготовлен в рамках выполнения работ по проектированию системы защиты персональных

Подробнее

Программа «Кредитный калькулятор для кредитных организаций» Руководство оператора

Программа «Кредитный калькулятор для кредитных организаций» Руководство оператора Программа «Кредитный калькулятор для кредитных организаций» Руководство оператора АННОТАЦИЯ Настоящий документ разработан на основании технического задания (ТЗ) на разработку программы «Кредитный калькулятор

Подробнее

ОГЛАВЛЕНИЕ 1. ВВЕДЕНИЕ В БАЗЫ ДАННЫХ ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ СОВРЕМЕННОЕ СОСТОЯНИЕ ТЕХНОЛОГИЙ БАЗ ДАННЫХ

ОГЛАВЛЕНИЕ 1. ВВЕДЕНИЕ В БАЗЫ ДАННЫХ ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ СОВРЕМЕННОЕ СОСТОЯНИЕ ТЕХНОЛОГИЙ БАЗ ДАННЫХ ОГЛАВЛЕНИЕ 1. ВВЕДЕНИЕ В БАЗЫ ДАННЫХ... 6 1.1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ... 6 1.2. СОВРЕМЕННОЕ СОСТОЯНИЕ ТЕХНОЛОГИЙ БАЗ ДАННЫХ... 7 1.3. БАЗЫ ДАННЫХ... 9 1.4. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ... 12

Подробнее

ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ

ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ ПОЛИТИКА КОМПАНИИ В ОТНОШЕНИИ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ Москва, 2016 1 СОДЕРЖАНИЕ 1 ОБЩИЕ ПОЛОЖЕНИЯ... 3 2 ПРИНЦИПЫ И УСЛОВИЯ ОБРАБОТКИ ПЕРСОНАЛЬНЫХ ДАННЫХ... 4 2.1 Принципы обработки персональных

Подробнее

Инструкция по установке и настройке комплекса Хранилище-КС

Инструкция по установке и настройке комплекса Хранилище-КС УПРАВЛЕНИЕ ФИНАНСОВ АДМИНИСТРАЦИИ ГОРОДА МУРМАНСКА пр. Ленина,75, г. Мурманск, 183006, тел. (8152) 455652, факс (8152) 458279 E-mail: ufin@citymurmansk.ru ОКПО 02290226, ОГРН 1025100848904, ИНН 5190800241,

Подробнее

ПОЛИТИКА обработки и защиты персональных данных АО «Компания ТрансТелеКом»

ПОЛИТИКА обработки и защиты персональных данных АО «Компания ТрансТелеКом» Утвердил: Р.В. Кравцов Редакция 2 Стр.1 из 16 ПРИЛОЖЕНИЕ 1 к Приказу 241 от «13» октября 2016 г. ПОЛИТИКА обработки и защиты персональных Редакция :2 Стр.2 из 16 Содержание 1. ОБЩИЕ ПОЛОЖЕНИЯ... 3 2. ПРИНЦИПЫ,

Подробнее

п о ПОЛИТИКА ООО «РУСАЛКА-ТУР» в области обработки и защиты персональных данных

п о ПОЛИТИКА ООО «РУСАЛКА-ТУР» в области обработки и защиты персональных данных «Утверждаю» Генеральный директор ООО «Русалка-тур» \ Бабенко О.В. «24» мая 2016 г. п о ПОЛИТИКА ООО «РУСАЛКА-ТУР» в области обработки и защиты персональных данных город Брянск 2016 год 1. ОБЩИЕ ПОЛОЖЕНИЯ

Подробнее

ÐÅÊÎÌÅÍÄÀÖÈÈ Â ÎÁËÀÑÒÈ ÑÒÀÍÄÀÐÒÈÇÀÖÈÈ ÁÀÍÊÀ ÐÎÑÑÈÈ ÎÁÅÑÏÅ ÅÍÈÅ ÈÍÔÎÐÌÀÖÈÎÍÍÎÉ ÁÅÇÎÏÀÑÍÎÑÒÈ ÎÐÃÀÍÈÇÀÖÈÉ ÁÀÍÊÎÂÑÊÎÉ ÑÈÑÒÅÌÛ ÐÎÑÑÈÉÑÊÎÉ ÔÅÄÅÐÀÖÈÈ

ÐÅÊÎÌÅÍÄÀÖÈÈ Â ÎÁËÀÑÒÈ ÑÒÀÍÄÀÐÒÈÇÀÖÈÈ ÁÀÍÊÀ ÐÎÑÑÈÈ ÎÁÅÑÏÅ ÅÍÈÅ ÈÍÔÎÐÌÀÖÈÎÍÍÎÉ ÁÅÇÎÏÀÑÍÎÑÒÈ ÎÐÃÀÍÈÇÀÖÈÉ ÁÀÍÊÎÂÑÊÎÉ ÑÈÑÒÅÌÛ ÐÎÑÑÈÉÑÊÎÉ ÔÅÄÅÐÀÖÈÈ ÐÅÊÎÌÅÍÄÀÖÈÈ Â ÎÁËÀÑÒÈ ÑÒÀÍÄÀÐÒÈÇÀÖÈÈ ÁÀÍÊÀ ÐÎÑÑÈÈ ÐÑ ÁÐ ÈÁÁÑ-2.4-2010 ÎÁÅÑÏÅ ÅÍÈÅ ÈÍÔÎÐÌÀÖÈÎÍÍÎÉ ÁÅÇÎÏÀÑÍÎÑÒÈ ÎÐÃÀÍÈÇÀÖÈÉ ÁÀÍÊÎÂÑÊÎÉ ÑÈÑÒÅÌÛ ÐÎÑÑÈÉÑÊÎÉ ÔÅÄÅÐÀÖÈÈ ÎÒÐÀÑËÅÂÀß ÀÑÒÍÀß ÌÎÄÅËÜ ÓÃÐÎÇ ÁÅÇÎÏÀÑÍÎÑÒÈ

Подробнее

РЕСПУБЛИКА КРЫМ АДМИНИСТРАЦИЯ ГОРОДА АЛУШТЫ

РЕСПУБЛИКА КРЫМ АДМИНИСТРАЦИЯ ГОРОДА АЛУШТЫ РЕСПУБЛИКА КРЫМ АДМИНИСТРАЦИЯ ГОРОДА АЛУШТЫ ПОСТАНОВ Л Е НИЕ _01 июля 2016 года_ г. Алушта 2099 Об утверждении Положения об обработке и защите персональных данных в Администрации города Алушты Республики

Подробнее

АВТОМАТИЗИРОВАННАЯ СИСТЕМА СБОРА И ОБРАБОТКИ ИНФОРМАЦИИ О ТЕХНИЧЕСКОМ СОСТОЯНИИ ОБЪЕКТОВ ЭЛЕКТРОЭНЕРГЕТИКИ И ИХ ОБОРУДОВАНИЯ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

АВТОМАТИЗИРОВАННАЯ СИСТЕМА СБОРА И ОБРАБОТКИ ИНФОРМАЦИИ О ТЕХНИЧЕСКОМ СОСТОЯНИИ ОБЪЕКТОВ ЭЛЕКТРОЭНЕРГЕТИКИ И ИХ ОБОРУДОВАНИЯ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ АВТОМАТИЗИРОВАННАЯ СИСТЕМА СБОРА И ОБРАБОТКИ ИНФОРМАЦИИ О ТЕХНИЧЕСКОМ СОСТОЯНИИ ОБЪЕКТОВ ЭЛЕКТРОЭНЕРГЕТИКИ И ИХ ОБОРУДОВАНИЯ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ Версия 1.4 Листов 27 2016 СОДЕРЖАНИЕ 1. ВВЕДЕНИЕ...

Подробнее

ПРАВИЛА ОТКРЫТИЯ И ОБСЛУЖИВАНИЯ ТЕКУЩЕГО СЧЕТА ФИЗИЧЕСКОГО ЛИЦА в Публичном акционерном обществе «Росгосстрах Банк» (редакция 1)

ПРАВИЛА ОТКРЫТИЯ И ОБСЛУЖИВАНИЯ ТЕКУЩЕГО СЧЕТА ФИЗИЧЕСКОГО ЛИЦА в Публичном акционерном обществе «Росгосстрах Банк» (редакция 1) Приложение 1 к Приказу 49.03/1114-01-06/13 от 03.12.2013г. УТВЕРЖДАЮ Председатель Правления Публичного акционерного общества «Росгосстрах Банк» А.В. Фалев 03.12.2013г. ПРАВИЛА ОТКРЫТИЯ И ОБСЛУЖИВАНИЯ ТЕКУЩЕГО

Подробнее

Инструкция для пользователя УПОП

Инструкция для пользователя УПОП Государственное казенное учреждение Тюменской области «Центр информационных технологий Тюменской области» Инструкция для пользователя УПОП (бизнес-процесс «УПОП») Версия 1 На 21 листах Разработано Согласовано

Подробнее

1. ЦЕЛЬ, ЗАДАЧИ И КРАТКИЕ СВЕДЕНИЯ О СОДЕРЖАНИИ ДИСЦИПЛИНЫ. Цель дисциплины

1. ЦЕЛЬ, ЗАДАЧИ И КРАТКИЕ СВЕДЕНИЯ О СОДЕРЖАНИИ ДИСЦИПЛИНЫ. Цель дисциплины . ЦЕЬ, ЗАДАЧИ И КРАТКИЕ СВЕДЕНИЯ О СОДЕРЖАНИИ ДИСЦИПИНЫ Цель дисциплины Целью курса является ознакомление студентов с современной методологией создания динамических интернет-сайтов, а также приобретение

Подробнее

SQL-хранилище документов Руководство пользователя

SQL-хранилище документов Руководство пользователя SQL-хранилище документов Руководство пользователя Москва, 2009 2 АННОТАЦИЯ В настоящем документе приводится описание комплекта поставки программного продукта «SQL-хранилище документов», требований к аппаратно-программному

Подробнее