Смекни!
smekni.com

Автоматизация предприятия (стр. 6 из 13)

Роль - это ключевой компонент функции управления доступом на основе ролей. Роли создаются в соответствии с тем, что требуется сотрудникам для эффективного предоставления доступа к нужному инструментарию [7].

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

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

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

Предоставляемое право определяет, какие службы связаны с правилом политики и какие условия применимы к предоставляемому праву. Например, предоставляемое право может указывать, есть ли у связанной с ним роли доступ ко всем экземплярам службы, или только к какому-то одному экземпляру этой службы. С предоставляемыми правами также связаны рабочие потоки, которые позволяют реализовать процедуры утверждения при предоставлении доступа к службам.

1.2.3. Управление доступом на основе ролей

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

Функция управления доступом на основе ролей использует роли и правила политики предоставления доступа, чтобы оценивать, проверять и применять бизнес-процессы и правила для предоставления доступа пользователям. Главные администраторы создают правила политики предоставления доступа и назначают пользователям роли, для которых заданы наборы предоставляемых прав, определяющих разрешения на доступ к ресурсам. Роль, назначенная пользователю, отражает круг его обязанностей и сферу его деятельности в организации [7].

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

Управление доступом на основе ролей включает в себя следующие возможности:

- Обязательные и дополнительные предоставляемые права; дополнительные права не предоставляются автоматически, но пользователь в группе может затребовать такие права.

- Обязательные службы, доступ к которым должен предоставляться до того, как будут заданы те или иные права доступа. Например, права доступа к Windows NT(R) должны предоставляться до предоставления прав на доступ к Microsoft Outlook(R).

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

- Можно создать одну учетную запись с несколькими разрешениями, управляемыми разными правилами политики.

- Можно создавать частные просмотры информации о пользователях и доступных ресурсах с применением фильтров.

- Можно применять методы аутентификации пользователей, соответствующие внутренней политике защиты.

- Можно безопасным образом распределять компоненты системы предоставления доступа по средам WAN и Интернет (включая переход через брандмауэры).

- Можно создавать ID пользователей с использованием унифицированных, заданных пользователями алгоритмов.

Функция User_Connect(login, password) помимо подключения к базе данных, определяет к какой роли принадлежит данный пользователь и связывает его с определенными правами. В зависимости от привилегий конкретного пользователя, ему разрешается или запрещается просматривать, редактировать или удалять определенные записи в базе данных.

1.3. Алгоритмы работы подсистемы

Разработанная программа, после соединения с базой данных, формирует таблицу со списком каталогов, в которых хранится информация на состав конечного изделия. Из этой таблицы выбирается каталог и для этого каталога делается расчет потребности, если необходимо сделать расчет для нескольких каталогов, то выбирается несколько каталогов. Когда расчет произведен, формируется новая таблица с материалами и их потребностями. Каждому материалу соответствует свой уникальный код. Материал, который входит в состав изделия по необходимости можно заменить на какой-либо другой, но обязательно из той же группы. Замена может быть полной или частичной, так как часть необходимого материала может быть в наличии. Для каждого необходимого материала или для замены можно ввести соответствующего контрагента, то есть у кого будет производиться закупка. Для этого из справочника контрагентов, в котором содержится информация о названии, городе, физическом и юридическом адресе, индивидуальном налоговом номере и прочие характеристики, выбирается контрагент. После добавления контрагента необходимо ввести количество материала (в пределах ранее рассчитанной величины), требуемого на закупку, а так же единицу измерения (килограмм, метр, кубометр, литр и т.д.) и закупочную цену. После ввода всех необходимых данных формируется таблица заказов в которой содержится информация о материале, его количестве, цене и контрагенте. В этой таблице можно выбрать перечень материалов на которые надо оформлять заказ и формируется отчет.


2.4. Разработка таблиц

2.4.1. Структура таблицы «материалы»

«Таблица материалы» содержит в себе информацию о всех материалах и их характеристиках (табл.1).

Табл.1

Таблица имеет следующие поля:

MATERIAL_ID : Идентификатор

KOD_OKP : Код ОКП

NAME : Наименование

ED_IZM : Еденица измерения

NORMA : Минимальная норма запаса на складе

DECLARATION : Дополнительное описание

KORR_SCHET : Балансовый счет

USER_ID : Идентификатор пользователя

DATE_CREATE : Дата создания

DATE_LAST_CHANGE : Дата последнего изменения

MAT_TYPE : Типеденицы

IMBASE_KEY : Ключв IMBASE

SAPFORD_KEY : Ключв SAPFORD

GR_ZAMEN : Номергруппывзаимозаменяемыхматериалов

MIN_RASHOD : Минимальная партия выдачи

2.4.2. Структура таблицы «контрагенты»

«Таблица контрагенты» содержит информацию о контрагентах и их характеристиках (табл.2).

Табл.2

Таблица имеет следующие поля:

CODE : Внешний идентификатор (три знака почтового индекса + четырехзанчный код)

NAME : Наименование

FULL_NAME : Полное имя

INN : ИНН банка

KPP : КПП предприятия

ZIP : Почтовый индекс

REGION : Регион, край, область, автономный округ.

SUB_REGION : Район

CITY : Наиненование населенного пункта

NAS : Внутренний код

STREET : Улица

HOUSE : Дом

HOUSE_CASE : Корпус

HOUSE_CASE_STRUC : Строение

CONTRAGENT_ID : Внутреннийкод

PHONE : Телефон

FAX : Факс

E_MAIL : Электронный почтовый ящик

ADD_INF : Дополнительная информация

OFFICE : Офис

COUNTRY : Страна

DATE_CREATE : Дата создания записи

DATE_LAST_CHANGE : Дата изменения записи

USER_ID : Идентификатор пользователя

USER_ID_CHANGE : Идентифокатор изменившего пользователя

2.4.3. Структура таблицы «замены»

«Таблица замены» содержит информацию о заменах (табл.3).

Табл.3

Таблица имеет следующие поля:

MZ_ID : Уникальный идентификатор

MZ_KAT_ID : Каталог

MZ_MAT_ID : Идентификатор заменяемого материала

MZ_NEW_MAT_ID : Ифентификатор нового материала

MZ_KOL : Количество заменяемого материала

MZ_MAX_KOL : Всего заменяемого материала

MZ_NEW_KOL : Количество нового материала

MZ_TYPE : Тип замены (0 - полная, 1 - частичная)

Процедурадобавлениязамены:

CREATE OR REPLACE PROCEDURE "MATERIALS_ZAMEN_CREATE" (

in_kat_id IN sostav.sos_kat_id%TYPE,

in_mat_id IN materials_zamen.mz_mat_id%TYPE,

in_new_mat_id IN materials_zamen.mz_mat_id%TYPE,

in_old_kol IN materials_zamen.mz_kol%TYPE,

in_max_kol IN materials_zamen.mz_max_kol%TYPE,

in_new_kol IN materials_zamen.mz_new_kol%TYPE,

in_zamen_type IN materials_zamen.mz_type%TYPE

)

/*добавление записи по материалу к версии расчета*/

IS

out_id INTEGER;

mat_count INTEGER := 0;

summ_kol NUMBER := 0;

BEGIN

SELECT seq_material_zamen_mz_id.NEXTVAL

INTO out_id

FROM DUAL;

-- Ищем были ли произведены полные замены на данный материал

SELECT COUNT (*)

INTO mat_count

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 0

AND mz_kat_id = in_kat_id;

-- Если производится частичная замена и уже есть полная замена

IF (in_zamen_type IN (0, 1) AND mat_count > 0)

THEN

raise_application_error

(-20001,

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

);

END IF;

mat_count := 0;

-- Ищем были ли произведены частичные замены на данный материал

SELECT COUNT (*)

INTO mat_count

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 1

AND mz_kat_id = in_kat_id;

-- Если производится полная замена и уже есть частичные замены

IF (in_zamen_type = 0 AND mat_count > 0)

THEN

raise_application_error

(-20001,

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

);

END IF;

--Проверяем, можно ли произвести частичную замену