Pull to refresh
8
0
Send message
Мне очень интересен бенчмарк алгоритма на таких вот текстах:

Казнить, нельзя помиловать.


Казнить нельзя, помиловать.
msyu
VGA Passthrough (Scraelos), потому как нет под XCP файла "/etc/xen/ cfgfile"


Есть возможность проверить?

xm list -l Dom0_Win7-2 > vm.conf

vi vm.conf


gfx_passthru=1
pci=['02:00.0']


xm del Dom0_Win7-2
xm new -F vm.conf
xm start Dom0_Win7-2


Конкретные значения параметров указал на основании представленных в статье.
Спасибо maovrn за отзыв. Приведенный материал достаточно объемный и дополнительные аспекты могут остаться незамеченными.

Вот смотрите: приведенное решение не нужно установить на серверах кроме одного DEV; dblink который создается использует соединение с базой от имени указанного пользователя и его права доступа; код без явного указания схемы, создается в схеме внешнего пользователя (в настройке dblink); скрипт сначала реально выполняется на DEV и тут никакой магии, а если нет ошибок дублируется на TST; все ходы записываются и им присваивается ревизия; пользователь upd изолирован, а доступ к dblink на прямую он не предоставляет.

Теперь, немного о правах доступа, вот пример (предположим что «test» будет вашей рабочей схемой на сервере TST):

SQL> connect system/***@TST
Connected.

SQL> create user test identified by ***;
User created.

SQL> grant dba to test;
Grant succeeded.

SQL> connect test/***@TST
Connected.
SQL> create database link back_dev connect to developer identified by *** using 'DEV';
Database link created.

SQL> select * from dual@back_dev;

D
-
X

SQL> connect upd/***@DEV
Connected.

create database link db_test connect to test identified by *** using 'TST';
Database link created.

--Разрешу developer используя алиас test_server попадать на сервер DEV к пользователю TEST
insert into  upd$servers values ('test_server', 'db_test', 'developer', 'back_dev');
1 row inserted.


SQL> connect developer/***@DEV
Connected.


--я авторизован как developer и пакет будет создаваться в этой схеме
begin
upd.ChannelUpdate('test_server');
end;

--сначала в схеме developer успешно скомпилируется пакет
create or replace package test1 as
    procedure proc1;
end;
/

begin
upd.ChannelPrepare;
--произойдет компиляция пакета на сервере TST для пользователя test, который имеет права DBA
upd.ChannelApply;
end;

ORA-01031: insufficient privileges


Почему это произошло? dblink не позволяет управлять привилегиями (т.е. выполнять grant, revoke) и разрешает только те права, которые пользователь имеет явно. Для выполнения этого обновления нужно выдать права: grant create procedure to test;

Указанные Вами опасения — не влияют на управляемость работой этого решения.
• В данном случае он только выполняет уже выполненный DDL.
• Как бы то ни было это мне больше всего и не нравится.
• Удаленный сервер должен иметь лишь один компонент — обратный dblink. Кстати можно обойтись и без dblink, но тогда размер блока обновления ограничен.
• Решение предназначено для использования (установки) на сервере разработки.
Постарался скорректировать вступление, статью обновил.
Этот вариант работал уже давно, но не так удобен. Чем система сложна? Пара таблиц, и триггер. Да, есть корявость с использованием джоба, но возможно это удастся скорректировать.
TStream.WriteComponent — записывает только published свойства.
Исходя из приведенных рекомендаций, я скорректировал пример.

Условие в таком виде upper(oracle_user) = upper(USER) не позволит использовать индексы.

Вы в этом уверены?
Тут я был не прав, подвох в вопросе чувствовался, но навскидку сразу не вспомнил.
После создания таблицы user_data и вставки данных и туда.
Если следовать вашим практическим советам по организации моделей данных, скажем инфраструктуры ЛВС, то как же их сочетать с теоретическими выдержками из этого комментария?
Я же указал в начале поста, о том, что привожу тестовый пример. В первом случае, выполнять этот подзапрос не имеет смысла, как впрочем, и во втором случае без него можно обойтись.
В таблицах отсутствует первичный ключ, триггер на его генерацию и создание сиквенса, не созданы индексы, и не даны рекомендации по наполнению тестовыми данными таблицы user_data. Используется пользователь SCOTT, явно из тестовый БД, которой на продуктивной, как правило, нет.
А что не так с commit? Создали таблицу, вставили данные, далее предполагается смена пользователя…
Вынужден согласиться. Из приведенного примера убрал.
Уверен, что лишь специалист с глубоким опытом проектирования корпоративных систем, никогда не поскупится на создание лишних триггеров и представлений дублирующих имеющиеся таблицы. И конечно же, запросто перепишет те из них, которые перестанут удовлетворять требованиям ограничения доступа — сразу на продуктивной системе.
Не могу согласиться. В модели данных, для которой выполнялся поиск решения, действительно отсутствует специализированные средства, которые бы были разработаны для предоставления доступа к строкам на уровне пользователя. Но проблема заключалась не в этом. Перечень необходимых расширений в виде триггеров, констрейнов, таблиц – для актуализации журнала доступа или нагромождение представлениями, не казались приемлемыми решениями.
Действительно, он так и называется.

Information

Rating
Does not participate
Registered
Activity