300 likes | 607 Views
«Парус-Предприятие 8». Администрирование СУБД. Московец Олег аналитик Центра корпоративных решений ПАРУС moskovets@parus.ru. Администрирование СУБД. 1. Работа в нескольких схемах. Деление данных Парус 8 по схемам.
E N D
«Парус-Предприятие 8» Администрирование СУБД Московец Олег аналитик Центра корпоративных решений ПАРУС moskovets@parus.ru
Администрирование СУБД 1. Работа в нескольких схемах
Деление данных Парус 8 по схемам С 23.07.2013 в ПП «Парус-Предприятие 8» добавлена возможность деления по схемам базы данных, что позволяет в одной базе данных использовать несколько схем с данными Систем Парус 8. Владелец схемы пользовательБД – PARUS, он же пользователь Системы Парус 8 - Администратор Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.х) PARUS_MAIN PARUS_LOB PARUS_INDEX Схема TEST (начиная с версии 8.5.6.1 от 01.08.13 и выше ) Владелец схемы пользовательБД – TEST, он же пользователь Системы Парус 8 – НовыйАдминистратор TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам С 23.07.2013 в ПП «Парус-Предприятие 8» добавлена возможность деления по схемам базы данных, что позволяет в одной базе данных использовать несколько схем с данными Систем Парус 8. Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.х) PARUS_MAIN PARUS_LOB PARUS_INDEX Схема TEST (начиная с версии 8.5.6.1 от 01.08.13 и выше ) TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам Пример клонирования схемы PARUS в одной БД Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.6.1 от 01.08.13) В базе данных с идентификатором STUDYTEST развернута Система Парус 8.5.6.1 релиз 01.08.2013 Владелец схемы: пользователь БД – PARUS, он же пользователь Системы Парус 8 – Администратор; Используемые табличные пространства – PARUS_MAIN, PARUS_LOB, PARUS_INDEX PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST TEST_MAIN TEST_LOB TEST_INDEX Дамп схемы PARUS
Деление данных Парус 8 по схемам Пример клонирования схемы PARUS в одной БД Oracle Database SID – “STUDYTEST” Создается новая схема TEST Новые табличные пространства – TEST_MAIN, TEST_LOB, TEST_INDEX Схема PARUS (версия 8.5.6.1 от 01.08.13) PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST CREATE TABLESPACE "TEST_MAIN" NOLOGGING DATAFILE 'X:\ORADATA\TEST_MAIN.DBF' SIZE 1000M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE "TEST_LOB" NOLOGGING DATAFILE 'X:\ORADATA\TEST_LOB.DBF' SIZE 1000M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE "TEST_INDEX" NOLOGGING DATAFILE 'X:\ORADATA\TEST_INDEX.DBF' SIZE 1000M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; TEST_MAIN TEST_LOB TEST_INDEX Дамп схемы PARUS
Деление данных Парус 8 по схемам Пример клонирования схемы PARUS в одной БД новый пользователь БД – TEST, он же пользователь Системы Парус 8 – НовыйАдминистратор; Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.6.1 от 01.08.13) PARUS_MAIN PARUS_INDEX PARUS_LOB create user TEST identified by password default tablespace PARUS_TEST temporary tablespace TEMP; alter user TEST quota unlimited on TEST_MAIN; grant CREATE SESSION, ALTER SESSION, CREATE PROCEDURE, CREATE SEQUENCE, CREATE SNAPSHOT, CREATE VIEW, CREATE TABLE, CREATE TRIGGER, CREATE ANY CONTEXT to TEST; grant CREATE JOB to TEST; grant DROP ANY CONTEXT to TEST; -- праванаобновление БД, импорта grant SELECT on gv_$session to TEST; grant EXECUTE on dbms_pipe to TEST; grant EXECUTE on dbms_lock to TEST; -- праванакаталогимпорта GRANT read, write ON DIRECTORY DATA_PUMP_DIR TO TEST; Схема TEST TEST_MAIN TEST_LOB TEST_INDEX Дамп схемы PARUS
Деление данных Парус 8 по схемам Пример клонирования схемы PARUS в одной БД Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.6.1 от 01.08.13) С помощью утилиты Oracle DATA Pump производится экспорт данных схемы PARUS PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST TEST_MAIN TEST_LOB TEST_INDEX expdpPARUS/password@STUDYTEST schemas=PARUS directory=DATA_PUMP_DIR dumpfile=orcl.dmp logfile=orclexp.log Дамп схемы PARUS
Деление данных Парус 8 по схемам Пример клонирования схемы PARUS в одной БД Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.6.1 от 01.08.13) Далее производится импорт данных в новую схему TEST PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST TEST_MAIN TEST_LOB TEST_INDEX impdp TEST/password@ORCL schemas=PARUS REMAP_SCHEMA=PARUS:TEST directory=DATA_PUMP_DIR remap_tablespace=PARUS_MAIN:TEST_MAIN remap_tablespace=PARUS_LOB:TEST)LOB remap_tablespace=PARUS_INDEX:TEST_INDEX dumpfile=ORCL.DMP logfile=orclimp.log Дамп схемы PARUS
Деление данных Парус 8 по схемам Пример клонирования схемы PARUS в одной БД Oracle Database SID – “STUDYTEST” В схеме TEST провести операции по удалению публичных синонимов; Схема PARUS (версия 8.5.6.1 от 01.08.13) PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST begin for rec in ( select 'drop public synonym ' || SYNONYM_NAME a from all_synonyms where table_owner = 'PARUS' ) loop execute immediate rec.a; end loop; end; TEST_MAIN TEST_LOB TEST_INDEX Дамп схемы PARUS
Деление данных Парус 8 по схемам Пример клонирования схемы PARUS в одной БД В новой схеме TEST пересоздать контекст пользователя PARUS и скомпилировать инвалидные объекты Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.6.1 от 01.08.13) PARUS_MAIN PARUS_INDEX PARUS_LOB declare sCONTEXT1 constant varchar2( 30 ) := 'PARUS$SESSION$CONTEXT'; sCONTEXT constant varchar2( 30 ) := 'PARUS'||'$'||lpad(ltrim(to_char(to_number(sys_context('USERENV','CURRENT_SCHEMAID')),'XXXXXXXX')),8,'0')||'$'||'SYSTEM'; sPACKAGE constant varchar2( 30 ) := 'PKG_SESSION'; OBJECT_NOT_EXIST exception; pragma exception_init( OBJECT_NOT_EXIST,-04043 ); Begin begin execute immediate 'DROP CONTEXT '||sCONTEXT; exception when OBJECT_NOT_EXIST then null; end; execute immediate 'CREATE CONTEXT '||sCONTEXT||' USING '||sPACKAGE; end; / Схема TEST TEST_MAIN TEST_LOB TEST_INDEX Дамп схемы PARUS
Деление данных Парус 8 по схемам Перенос схемы PARUS в другую БД с развернутой системой Парус 8 Oracle Database SID – “STUDY” (версия 8.5.6.1 от 01.08.13 ) Схема PARUS В базе данных с идентификатором STUDY развернута Система Парус 8 8.5.6.1 релиз 01.08.2013, которую необходимо перенести в новую БД, не удаляя старой схемы. В базе данных с идентификатором STUDYTEST развернута произвольная Система Парус. Владелец схемы: пользователь БД – PARUS, он же пользователь Системы Парус 8 – Администратор; Используемые табличные пространства – PARUS_MAIN, PARUS_LOB, PARUS_INDEX PARUS_MAIN PARUS_LOB PARUS_INDEX Дамп схемы PARUS Oracle Database SID – “STUDYTEST” Схема PARUS (может быть любая) PARUS_MAIN PARUS_INDEX PARUS_LOB (версия 8.5.6.1 от 01.08.13) Схема TEST TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам Перенос схемы PARUS в другую БД с развернутой системой Парус 8 Oracle Database SID – “STUDY” Схема PARUS Создается новая схема TEST Новые табличные пространства – TEST_MAIN, TEST_LOB, TEST_INDEX PARUS_MAIN PARUS_LOB PARUS_INDEX Дамп схемы PARUS Oracle Database SID – “STUDYTEST” Схема PARUS CREATE TABLESPACE "TEST_MAIN" NOLOGGING DATAFILE 'X:\ORADATA\TEST_MAIN.DBF' SIZE 1000M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE "TEST_LOB" NOLOGGING DATAFILE 'X:\ORADATA\TEST_LOB.DBF' SIZE 1000M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE "TEST_INDEX" NOLOGGING DATAFILE 'X:\ORADATA\TEST_INDEX.DBF' SIZE 1000M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам Перенос схемы PARUS в другую БД с развернутой системой Парус 8 Oracle Database SID – “STUDY” Схема PARUS новый пользователь БД – TEST, он же пользователь Системы Парус 8 – НовыйАдминистратор; PARUS_MAIN PARUS_LOB PARUS_INDEX Дамп схемы PARUS create user TEST identified by password default tablespace PARUS_TEST temporary tablespace TEMP; alter user TEST quota unlimited on TEST_MAIN; grant CREATE SESSION, ALTER SESSION, CREATE PROCEDURE, CREATE SEQUENCE, CREATE SNAPSHOT, CREATE VIEW, CREATE TABLE, CREATE TRIGGER, CREATE ANY CONTEXT to TEST; grant CREATE JOB to TEST; grant DROP ANY CONTEXT to TEST; -- праванаобновление БД, импорта grant SELECT on gv_$session to TEST; grant EXECUTE on dbms_pipe to TEST; grant EXECUTE on dbms_lock to TEST; -- праванакаталогимпорта GRANT read, write ON DIRECTORY DATA_PUMP_DIR TO TEST; Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.6.1 от 01.08.13) PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам Перенос схемы PARUS в другую БД с развернутой системой Парус 8 Oracle Database SID – “STUDY” Схема PARUS PARUS_MAIN PARUS_LOB PARUS_INDEX С помощью утилиты Oracle DATA Pump производится экспорт данных схемы PARUS Дамп схемы PARUS Oracle Database SID – “STUDYTEST” Схема PARUS (версия 8.5.6.1 от 01.08.13) PARUS_MAIN PARUS_INDEX PARUS_LOB expdpPARUS/password@STUDYTEST schemas=PARUS directory=DATA_PUMP_DIR dumpfile=orcl.dmp logfile=orclexp.log Схема TEST TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам Перенос схемы PARUS в другую БД с развернутой системой Парус 8 Oracle Database SID – “STUDY” Схема PARUS PARUS_MAIN PARUS_LOB PARUS_INDEX Далее производится импорт данных в новую схему TEST Дамп схемы PARUS Oracle Database SID – “STUDYTEST” Схема PARUS PARUS_MAIN PARUS_INDEX PARUS_LOB impdp TEST/password@ORCL schemas=PARUS REMAP_SCHEMA=PARUS:TEST directory=DATA_PUMP_DIR remap_tablespace=PARUS_MAIN:TEST_MAIN remap_tablespace=PARUS_LOB:TEST)LOB remap_tablespace=PARUS_INDEX:TEST_INDEX dumpfile=ORCL.DMP logfile=orclimp.log Схема TEST TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам Перенос схемы PARUS в другую БД с развернутой системой Парус 8 Oracle Database SID – “STUDY” Схема PARUS PARUS_MAIN PARUS_LOB PARUS_INDEX В заключении провести операции по удалению публичных синонимов; Дамп схемы PARUS Oracle Database SID – “STUDYTEST” Схема PARUS begin for rec in ( select 'drop public synonym ' || SYNONYM_NAME a from all_synonyms where table_owner = 'PARUS' ) loop execute immediate rec.a; end loop; end; PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST TEST_MAIN TEST_LOB TEST_INDEX
Деление данных Парус 8 по схемам Перенос схемы PARUS в другую БД с развернутой системой Парус 8 Oracle Database SID – “STUDY” Схема PARUS пересоздать контекст пользователя PARUS и скомпилировать инвалидные объекты PARUS_MAIN PARUS_LOB PARUS_INDEX Дамп схемы PARUS declare sCONTEXT1 constant varchar2( 30 ) := 'PARUS$SESSION$CONTEXT'; sCONTEXT constant varchar2( 30 ) := 'PARUS'||'$'||lpad(ltrim(to_char(to_number(sys_context('USERENV','CURRENT_SCHEMAID')),'XXXXXXXX')),8,'0')||'$'||'SYSTEM'; sPACKAGE constant varchar2( 30 ) := 'PKG_SESSION'; OBJECT_NOT_EXIST exception; pragma exception_init( OBJECT_NOT_EXIST,-04043 ); Begin begin execute immediate 'DROP CONTEXT '||sCONTEXT; exception when OBJECT_NOT_EXIST then null; end; execute immediate 'CREATE CONTEXT '||sCONTEXT||' USING '||sPACKAGE; end; / Oracle Database SID – “STUDYTEST” Схема PARUS PARUS_MAIN PARUS_INDEX PARUS_LOB Схема TEST TEST_MAIN TEST_LOB TEST_INDEX
Работа в нескольких схемах Получаемые преимущества решения: использование разных версий и релизов ПП Парус в разных схемах в едином экземпляре БД для разных направлений деятельности Организации; существенное снижение затрат на программно-аппаратное обеспечение и администрирование экземпляра БД, перенос результатов разработки из тестовой схемы в промышленную; обновление разных схем с различной дискретностью, в зависимости от потребностей бизнеса, в едином экземпляре БД; разработка нового функционала не создавая новую физическую СУБД; ведение продуктивной БД и тестовой БД в едином экземпляре БД;
Администрирование СУБД 2. Детальный контроль прав доступа
Детальный контроль прав доступа Предпосылки для разработки функционала: ПП Парус отличает гибкий механизм настройки прав доступа к разделам и функциям. Но исходя из развития Системы, появления новых аналитик учета, расширения функциональных возможностей, появляются требования к разграничению прав доступа в разрезе новых сущностей. К примеру это могут быть «Принадлежность» в оборотных ведомостях или товарных запасах; ограничение пользователям просмотр исторической информации в закрытых периодах, ограничить доступ к информации по определенному конфиденциальному значению поля и т.д. Если делать это штатно в модуле Администратор, это повлечет за собой ресурсоемкий процесс описания всех полей и громоздкий механизм выдачи прав доступа. Чтобы избежать этого, и был использован пакет СУБД Oracle, и этапы включения данного пакета были описаны в Администраторе как Детальный контроль прав доступа ( ДКПД ).
Детальный контроль прав доступа ДКПД был разработан для обеспечения гибкой настройки/ограничения условий отбора под конкретного пользователя/роли. Разработан механизм определения без каких-либо ограничений ключевых полей, условий, значений для условий отбора. Все настройки выполняются «на клиенте», нет необходимости использовать сторонние средства разработки. Механизм настройки подробно описан в технической документации: Master и ServiceDisk 8_5_6_1_2012_09_30\Master\_Техническая документация_Предприятие\СИС_Детальный_Контроль_Прав_Доступа.pdf Механизм использует пакет Oracle DBMS_RLS в составе механизма FGAC. *Если в базе данных (БД) иных продуктов Oracle есть пакет DBMS_RLS, то механизм детального контроля прав доступа будет работать и в этом случае (например, StandardEdition).
Детальный контроль прав доступа Разделы обеспечивающие функционал ДКПД: • Словари: • Параметры • Ключи • Предикаты • Учет : • Объекты • Экземпляры ключей • Политики • Функции : • Назначение пользователям • Назначение ролям
Детальный контроль прав доступа.Словари На примере ограничения Хозяйственных операций по дате, покажем пример использования: 1. Словари - Параметры детального контроля прав доступа 2. Словари - Ключи детального контроля прав доступа 3. Словари - Предикаты детального контроля прав доступа
Детальный контроль прав доступа. Учет. Учет- Объекты Учет –Экземпляры ключей Учет - Политики
Детальный контроль прав доступа. Функции. 1. Функции- Назначение пользователям 2. Функции- Назначение ролям
Детальный контроль прав доступа Получаемые преимущества решения: универсальный механизм, при настройке которого доступны любые поля таблиц, нет ограничений на условия применения. возможна установка в одной политике несколько значений группы полей; настройка доступа осуществляется на «клиенте», нет необходимости использовать сторонние средства разработки, требуются минимальные знания полей БД. Области применения механизма ДКПД: повышение уровня конфиденциальности данных на всех этапах учета в Системе – регистрация информации, учет и обработка данных, формирование отчетности; оптимизация скорости работы пользователей с системой за счет исключения обращения системы к «закрытым» данным.
«Парус-Предприятие 8» Спасибо за внимание. ВОПРОСЫ. Московец Олег аналитик Центра корпоративных решений ПАРУС moskovets@parus.ru