|
|
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
тынц по моему неплохо всё расписано здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 11:46 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
egorych тынц по моему неплохо всё расписано здесьMS SQL Server 2005 (codename “Yukon”) также будет поддерживать возможности RLS. Подробная документация на этот механизм еще не опубликована. Точно известно лишь то, что в T-SQL будут введены специальные конструкции. Судя по имеющимся документам, предикаты безопасности (RULES) будут создаваться как отдельные сущности, а специальные версии команд grant и revoke будут назначать эти предикаты пользователям и группам. а как славно начиналось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 12:09 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
bpost2 all: Хорошо, оставим пока в покое SUID. Задача остается той же: организовать ограничение доступа пользователя к записям таблицы по некоторому сложному критерию (возможно реализованному в ХП), причем сделать это таким образом, чтобы клиент подключившись к БД под своей учетной записью НИКАКИМИ средствами (ни штатными ни нештатными) не смог "увидеть" или "изменить" "запретные" для него записи. Решение с использованием промежуточного AS оставим за скобками (тут все понятно). СУБД: MS Sql Server 2000 или Interbase/Firebird (на выбор). Как бы Вы решили эту задачу средствами СУБД, и чем Ваше решение принципиально отличается в лучшую сторону от SUID подхода ?СУБД Oracle, FGAC или VIEW - зависит от конкретной задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 12:27 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
bpostРешение с использованием промежуточного AS оставим за скобками (тут все понятно). В том числе то, что оно часто убивает на корню решение этой задачи, позволяя спокойно забраться в базу мимо AS и более того, прямо-таки требуя открыть такой путь - например, для подключения генераторов отчетов. bpostСУБД: MS Sql Server 2000 или Interbase/Firebird (на выбор). Как бы Вы решили эту задачу средствами СУБД, и чем Ваше решение принципиально отличается в лучшую сторону от SUID подхода ? К сожалению, по-прежнему нет времени на подробный ответ, кратко: решил бы средствами "именованных запросов на сервере", то есть view для любых серверов и/или того, что в MSSQL называется table function (как всегда, они проявили умение выбрать название, совершенно не соответствующее сути, но "маркетинговое". Обратите внимание, я не отношу table function к "ХП", поскольку общего между ними - что между рыбой и сковородкой. Table function - это "параметризованный view"). Общий недостаток ХП-решений по сравнению с этим подходом - они не могут хорошо участвовать в дальнейших SQL-манипуляциях. Скажем, допустим, у меня есть таблицы tab_p и tab_q, а также хранимки sp_p и sp_q, выбирающие из них данные. Предположим, у меня появилась потребность вывести на клиенте следующие данные (и ничего более, например, пользователь захотел видеть на рабочем месте пару новых графиков) Код: plaintext 1. 2. Если бы sp_p и sp_q были вьюхами, я бы спокойно модифицировал только клиента, прописав на нем этот запрос - и тот бы нормально работал. В случае хранимок, которые "сначала выполнят полный запрос, потом будут думать" - производительность будет просто ужасной. Поэтому мне придется лезть на сервер писать на нем новую ХП либо дорабатывать существующие (и где, спрашивается, хваленая Вами изоляция и независимость уровней? Напомню при этом, что вышеупомянутые объекты - части интерфейса, того самого публичного контракта, и клиент, манипулируя ими, ничего не нарушает). Далее, в случае MSSQL2000 наблюдается большая проблема с динамическим SQL - он выполняется с правами вызывающего. Попробуйте, скажем, решить хранимкой следующую задачу: есть таблица, которая может фильтроваться по десяти полям в разничных комбинациях. Для некоторых полей возможна передача списков значений (для проверки в IN), для строковых сравнение может идти как по '=', так и по 'like', даты могут задаваться либо точным значением, либо диапазоном. Решить ее динамическим SQL Вы не сможете (поскольку для этого потребуется давать пользователю грант на доступ к таблице), придется писать накрученный запрос со смыслом "если задано вот это условие, то фильтровать вот так". Добиваться эффективности от таких запросов - очень тяжелое и малоосмысленное занятие; они будут неудобны в сопровождении и плохи по скорости. А чтобы "добить" Вас - подумайте над задачей "в зависимости от того, задано ли условие фильтрации, нужно подключать либо не подключать в запрос еще одну таблицу". Итого, в целом мы получаем следующее: мы не имеем возможности эффективно манипулировать данными из хранимок ни снаружи (после их вызова), ни внутри (передавая ограничения как параметры). Из чего следует вывод: единственный путь работать эффективно - делать по хранимке на каждый запрос, который только есть в клиенте. Что убивает ту самую независимость, которой мы пытаемся достичь! Сервер с клиентом оказываются связанными аки симские близнецы, можно уверенно сказать, что почти любая модификация потребует изменений во всех компонентах системы. Надеюсь, не надо объяснять, чем это плохо. О динамическом SQL в интербейсе я знаю очень мало, даже не знаю, есть ли он :) В общем скажу так: насколько я знаю, в плане решения "возврата датасетов из ХП" Oracle, с которым я работаю, заметно превосходит и MSSQL2000, и Interbase. Но даже при этом - практика остается плохой, хуже чем view. Если говорить о недостатках view - они есть, но не превосходят недостатков ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 12:39 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
bpost пишет: > есть одна проблема. В случае использования прямого доступа к данным > таблицы возможно обновить только одно поле записи используя конструкцию > типа UPDATE tablename SET fieldname=@newvalue WHERE id=@id оставив > остальные поля записи нетронутыми. При использовании SUID, этой операции > соответствует вызов UPDATE процедуры соответствующей таблицы: EXEC > tablename_update @id, @fieldname, .... Так вот дело в том, что список > параметров этой процедуры - список ВСЕХ полей несущей таблицы > (потенциально может меняться любое из полей), и чтобы вызвать процедуру > нужно указать ВСЕ параметры (т.е. значения ВСЕХ полей обновляемой > записи). Но мне не нужно изменять ВСЕ поля, нужно изменить только одно ! Да блин, ну напиши несколько процедур для update , каждая со своим набором полей. Если нужно все - со всеми. Если нужно часть - только с частью. > Как отделить поля подлежащие обновлению от остальных ? Как Вы > организуете свои SUID процедуры ? Мы организуем их как логические операции в терминах предметной области. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 12:53 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer bpostРешение с использованием промежуточного AS оставим за скобками (тут все понятно). В том числе то, что оно часто убивает на корню решение этой задачи, позволяя спокойно забраться в базу мимо AS и более того, прямо-таки требуя открыть такой путь - например, для подключения генераторов отчетов. интересно каким образом? AS обеспечивает централизованный доступ к БД. Это 1 пользователь. Если в базу кто-то лазит мимо AS, то разбираетесь с доступом. И зачем что-то открывать для генератора отчетов, если он тоже "ходит" через AS? Я про сервер приложений... Может имелся ввиду конечно совсем другой AS. Интересно еще и то, что наворачиваете умопомрачительную логику, SUI(ci)D-ные процедуры, но при этом ругаете трехзвенку, в которой подобные задачи решаются элементарно. Трехзвенок что-ли не видели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 12:57 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
iscrafmинтересно каким образом? AS обеспечивает централизованный доступ к БД. Это 1 пользователь. Именно. Поэтому любая дырка в AS и любой путь мимо AS - это ЧП высшей категории, "злоумышленник получил полный доступ". iscrafmЕсли в базу кто-то лазит мимо AS, то разбираетесь с доступом. Ну да, ну да. Уже хорошо видно, как "AS элементарно решает эту задачу". iscrafmИ зачем что-то открывать для генератора отчетов, если он тоже "ходит" через AS? Плюньте в лицо тому, кто Вам сказал такую глупость. Впрочем, с любопытством понаблюдаю, как Вы объясните например Oracle Discoverer-у, что он должен ходить к данным через ваш AS. iscrafmно при этом ругаете трехзвенку, в которой подобные задачи решаются элементарно. Трехзвенок что-ли не видели? Не видел, писал. И потому рассказы про "элементарно" вызывают нездоровый смех, примерно такой же, какой ранее вызывали аналогичные рассказы "а наш клиент всегда логинится под одним пользователем, а права проверяет внутри себя". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 13:36 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
2 iscrafm А вы RLS на app server-e делаете ? И отчеты на нем же ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 13:37 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
MasterZivМы организуем их как логические операции в терминах предметной области. Я бы только отметил, что именно поэтому это не SUID-процедуры. Не тупой автоматический код, а "умные" операции, отвечающие постановке задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 13:38 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinovа как славно начиналось :) -1 компании Microsoft :) BelyСУБД Oracle, FGAC Да, это вешчь :). Но денег наверное стоит немеряно (как сама СУБД, так и минимально приемлимое оборудование ее эксплуатации). Да и входит ли Oracle Label Security в стандартный набор расширений ? softwarerОбщий недостаток ХП-решений по сравнению с этим подходом - они не могут хорошо участвовать в дальнейших SQL-манипуляциях Принимается. Наверно будет удобнее решить ту же задачу используя представления + INSTED OF триггеры. Но все равно - прощай индексы в JOINах. авторДа блин, ну напиши несколько процедур для update , каждая со своим набором полей. Если нужно все - со всеми. Если нужно часть - только с частью. Полагаю так делать не стоит Ж) MasterZivМы организуем их как логические операции в терминах предметной области. Да, это не SUID. Это операции/методы элементов предметной области. 2 iscrafm: Никто ведь не говорит, что AS - плохое решение. Просто не всегда есть необходимость его использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 14:32 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer iscrafmинтересно каким образом? AS обеспечивает централизованный доступ к БД. Это 1 пользователь. Именно. Поэтому любая дырка в AS и любой путь мимо AS - это ЧП высшей категории, "злоумышленник получил полный доступ". много наговорили, только о чем - непонятно. Если DBA дает доступ кому-то кроме сервера приложений, то это чья проблема? Предвижу ответ - сервера приложений, но подожду Вашего. :) softwarer iscrafmЕсли в базу кто-то лазит мимо AS, то разбираетесь с доступом. Ну да, ну да. Уже хорошо видно, как "AS элементарно решает эту задачу". см. выше softwarer iscrafmИ зачем что-то открывать для генератора отчетов, если он тоже "ходит" через AS? Плюньте в лицо тому, кто Вам сказал такую глупость. Впрочем, с любопытством понаблюдаю, как Вы объясните например Oracle Discoverer-у, что он должен ходить к данным через ваш AS. как здесь принято говорить, "пад сталом" Не могу плюнуть себе в лицо, извините уж. Не обладаю необходимой пластикой. А Вам для иллюстрации, каким образом отчетные системы ходят через сервер приложений к СУБД . Может ролику поверите, а то все словам чьим-то :). softwarer iscrafmно при этом ругаете трехзвенку, в которой подобные задачи решаются элементарно. Трехзвенок что-ли не видели? Не видел, писал. И потому рассказы про "элементарно" вызывают нездоровый смех, примерно такой же, какой ранее вызывали аналогичные рассказы "а наш клиент всегда логинится под одним пользователем, а права проверяет внутри себя". softwarer, Ваши высказывания уже вызывают нездоровый смех. Не раз говорилось, что если у Вас не получилось по каким-то причинам сделать трехзвенку, то это не повод при любом упоминании о ней кривиться и кричать "must die". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 14:49 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
iscrafmА Вам для иллюстрации, каким образом отчетные системы ходят через сервер приложений к СУБД . А почему в ролике после нажатие на кнопку "Готово" в самом конце картинка принимает типичный вид "глубоко задумавшейся системы" да и остается такой ? Отчет не появляется. Этим же полностью снимается весь перезентационный эффект. Недоработка ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 14:59 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinov iscrafmА Вам для иллюстрации, каким образом отчетные системы ходят через сервер приложений к СУБД . А почему в ролике после нажатие на кнопку "Готово" в самом конце картинка принимает типичный вид "глубоко задумавшейся системы" да и остается такой ? Отчет не появляется. Этим же полностью снимается весь перезентационный эффект. Недоработка ИМХО Заметил Алексей, спасибо. Это последний фрейм почему-то таким получился. По кнопке готово прсто закрывается окно, никаких действий больше не выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 15:03 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
iscrafmмного наговорили, только о чем - непонятно. Подумайте, может и поймете. iscrafmЕсли DBA дает доступ кому-то кроме сервера приложений, Не, не поймете. iscrafmкак здесь принято говорить, "пад сталом" Не могу плюнуть себе в лицо, извините уж. Не обладаю необходимой пластикой. Попросите коллег помочь, раз уж не можете решить элементарную задачу в одиночку. Хотя тоже показатель инженерного мастерства. Прямо таки "чего думать - гнуться надо". iscrafmА Вам для иллюстрации, каким образом отчетные системы ходят через сервер приложений к СУБД . Может ролику поверите, а то все словам чьим-то :). Ну и где там Oracle Discoverer? Правда, не уверен, что ваш ролик работает до конца - у меня он останавливается вот на этом кадре который как-то черезчур сбоен для финального, но то, что там показано, более похоже на неубедительную самоделку с экспортом. iscrafmsoftwarer, Ваши высказывания уже вызывают нездоровый смех. Не удивлен, это довольно типичная реакция на знания другого уровня. Скажем, если Вы подойдете к дипломированному чернорабочему и скажете, что "ботаник" с помощью пары-другой блоков поднимет шестипудовый мешок цемента - тот тоже, вполне вероятно, будет хохотать. iscrafmНе раз говорилось, что если у Вас не получилось по каким-то причинам сделать трехзвенку, Говорилось? И отчего же тогда только в прошлом письме Вы спрашивали про мой опыт? Временно забыли? iscrafmто это не повод при любом упоминании о ней кривиться и кричать "must die". Поскольку это не первая косвенная ложь, которую Вы допустили в этом топике, предпочту ткнуть Вас носом: будьте так добры, покажите, где я при упоминании в этом топике "кричал must die" либо же публично принести извинения за ложь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 15:10 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
bpost BelyСУБД Oracle, FGAC Да, это вешчь :). Но денег наверное стоит немеряно (как сама СУБД, так и минимально приемлимое оборудование ее эксплуатации). Да и входит ли Oracle Label Security в стандартный набор расширений ? Во-первых, не стоит путать FGAC и Label Security, это разные вещи. Во-вторых, насчет минимально приемлимого оборудования.... скажем так, пару лет назад одним из серверов моего (тогда) отдела был гигагерцовый целерон с 256 Мб памяти. bpostПринимается. Наверно будет удобнее решить ту же задачу используя представления + INSTED OF триггеры. Но все равно - прощай индексы в JOINах. instead - уже не обязательно, обновление вполне неплохо идет и через ХП, я здесь предпочитаю подход, озвученный MasterZiv . Возможность instead of конечно, можно использовать. Насчет индексов - не очень понял, наверное какая-нибудь конкретная ситуация, но скажу так: у вьюх как минимум есть шанс на оптимизацию "запроса в целом", а у независимо выполняемых запросов - ни малейшего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 15:28 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer iscrafmЕсли DBA дает доступ кому-то кроме сервера приложений, Не, не поймете. вполне возможно, что у вас права раздает вахтер, не знаю. softwarerНу и где там Oracle Discoverer? Правда, не уверен, что ваш ролик работает до конца - у меня он останавливается вот на этом кадре там его нет, интерфейс к нему не включен в список загружаемых . А еще там нет Crystal-а, досадааа! softwarerкоторый как-то черезчур сбоен для финального, но то, что там показано, более похоже на неубедительную самоделку с экспортом. Это о чем вообще, разговор поддержать? Кто сбоен и какой экспорт? Сами то поняли? softwarer iscrafmsoftwarer, Ваши высказывания уже вызывают нездоровый смех. Не удивлен, это довольно типичная реакция на знания другого уровня. Скажем, если Вы подойдете к дипломированному чернорабочему и скажете, что "ботаник" с помощью пары-другой блоков поднимет шестипудовый мешок цемента - тот тоже, вполне вероятно, будет хохотать. так повышайте уровень, в чем проблема? softwarer iscrafmНе раз говорилось, что если у Вас не получилось по каким-то причинам сделать трехзвенку, Говорилось? И отчего же тогда только в прошлом письме Вы спрашивали про мой опыт? Временно забыли? не забыл, поэтому и интересуюсь, на основании чего вы делаете множество пространных высказываний. softwarer iscrafmто это не повод при любом упоминании о ней кривиться и кричать "must die". Поскольку это не первая косвенная ложь, которую Вы допустили в этом топике, предпочту ткнуть Вас носом: будьте так добры, покажите, где я при упоминании в этом топике "кричал must die" либо же публично принести извинения за ложь. Извините, дословно "must die" не кричали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 15:50 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
softwarerTable function - это "параметризованный view"Поправлю, в MSSQL есть 2 вида табличных функций: inline - это то, о чем Вы упомянули выше, и multistatement, который также возвращает выборку, но логика внутри может быть почти такой же сложной, как в ХП. И может быть включена в запрос также, как и любая другая таблица. Именно в этом смысле функции называются табличными. Если нетрудно, можете озвучить Ваш вариант определения табличных функций ? softwarerДалее, в случае MSSQL2000 наблюдается большая проблема с динамическим SQL - он выполняется с правами вызывающего.Может уже пора забывать о 2000 ? Он уже не очень актуален, на дворе середина 2007, и практически все новые проекты реализуются на базе 2005 версии, где эта проблема решена. Впрочем, как множество других... bpostНаверно будет удобнее решить ту же задачу используя представления + INSTED OF триггеры. Но все равно - прощай индексы в JOINах .Совсем необязательно. И вообще, если уж Вы пытаетесь найти решение для конкретной СУБД, то лучше его искать на профильном форуме, а не здесь. Возможно, там Вам будут предложено много других подходящих вариантов, особенно, если сможете сформулировать требования более четко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:00 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
iscrafmтам его нет, интерфейс к нему не включен в список Уже что-то. Итак, эксперимент с попыткой подключиться генератором отчетов к вашим данным показал, что AS тут не помощник. Что, собственно, уже доказывает то мое исходное утверждение, на которое Вы пытались возразить. Мало того, ни одного генератора отчетов в списке я не заметил (если Вы про тот список, который от сводной таблицы через FastReport до Excel). Если про другой, прошу дать более точные координаты, например ключевое слово для поиска. Что касается следующего эксперимента - ответа на вопрос "а по силам ли вам разработать интерфейс для подключения Discoverer, сколько это будет стоить и сможет ли работать с требуемыми объемами данных" - если хотите, попробуйте ответить, но я и так не особо сомневаюсь в результате. iscrafmА еще там нет Crystal-а, досадааа! С точки зрения Вашей аргументации - безусловно. Итак, Discoverer - это уже даже не разовый эффект, "только к нему и нет". Итого, если я сижу с генератором отчетов и хочу работать с вашими данными, ваш AS вместе с его механизмами RLS идет лесом, я правильно излагаю? iscrafm softwarerкоторый как-то черезчур сбоен для финального, но то, что там показано, более похоже на неубедительную самоделку с экспортом. Это о чем вообще, разговор поддержать? Кто сбоен и какой экспорт? Сами то поняли? Не юродствуйте, судя по уровню, который Вы демонстрируете в разговоре, понимание этой фразы не должно вызывать у Вас проблем. На всякий случай проясню по пунктам. "Кадр, который черезчур сбоен" - неужели этого недостаточно, чтобы ответить на вопрос "кто сбоен"? Поясняю: кадр. То изображение, которое приведено в сделанном мной снапшоте. Экспорт - вычисленных данных. Судя по содержимому ролика, похоже, что под экспортом у вас понимается "вычислить некий запрос или комбинацию запросов и сбросить результаты в указанный формат", что не имеет ни малейшего отношения к интерфейсу с генератором отчетов. iscrafmтак повышайте уровень, в чем проблема? Так повышаю, проблем нет. В качестве побочного эффекта - по мере повышения все чаще звучит нездоровый смех. Да, кстати, я бы советовал вам поправить грамматическую ошибку во фразе " Запуск из web-страниц и flas-презентаций (iconsole://rundocument) " (и на будущее - настоятельно рекомендую прогонять тексты через проверку правописания) и учесть, что при просмотре в FireFox после этой строчки виден двойной промежуток (если мне не изменяет память, это одна из особенностей FireFox после <li>. iscrafmне забыл, поэтому и интересуюсь, на основании чего вы делаете множество пространных высказываний. Хотите интересоваться - задавайте прямые вопросы, это эффективнее. А то заходите издалека, после чего жалуетесь на ответы. iscrafmИзвините, дословно "must die" не кричали. Дословно - принято, теперь, в продолжение темы про Гильчиперчика, будьте так добры показать, где кричал не дословно, на аналогичных условиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:19 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
iscrafm А Вам для иллюстрации, каким образом отчетные системы ходят через сервер приложений к СУБД . Может ролику поверите, а то все словам чьим-то :). Возможно, вы с softwarer'ом понимаете друг друга, но для посторонних поясните пожалуйста. Это ролик что демонстрирует? Взаимодействие написанного вами генератора отчетов с написанным вами сервером приложений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:24 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
2 iscrafm Bogdanov Andrey Возможно, вы с softwarer'ом понимаете друг друга, но для посторонних поясните пожалуйста. Это ролик что демонстрирует? Взаимодействие написанного вами генератора отчетов с написанным вами сервером приложений? Присоединяюсь. Поясните пожалуйста, как через ваш сервере приложений будет работать Microstrategy, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:31 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
ChAПоправлю, в MSSQL есть 2 вида табличных функций: inline - это то, о чем Вы упомянули выше, и multistatement, который также возвращает выборку, но логика внутри может быть почти такой же сложной, как в ХП. И может быть включена в запрос также, как и любая другая таблица. Именно в этом смысле функции называются табличными. Если нетрудно, можете озвучить Ваш вариант определения табличных функций ? Спасибо за уточнение, насколько я понимаю, это вопрос больше неточности моей терминологии. В моем представлении, "табличная функция - это функция, которая вычисляет и возвращает таблицу". Подчеркну, именно "вычисляет" - и в этом смысле, насколько я понимаю, это соответствует multistatement table function. Я подчеркиваю принципиальную разницу этого варианта с вариантом inline, в котором возвращается не таблица, а "запрос". Механизм действия этих "функций" очень сходен с механизмом view, практически это "view с параметрами" и с моей точки зрения, так их и стоит называть - parametrized view. По крайней мере, если я правильно понимаю механику реализации этих функций в MSSQL. ChA softwarerДалее, в случае MSSQL2000 наблюдается большая проблема с динамическим SQL - он выполняется с правами вызывающего.Может уже пора забывать о 2000 ? Простите великодушно, но мой собеседник, ставя задачу, настаивал именно на 2000. Полагаете, с моей стороны было бы корректно забыть об этом? Более того, настаивал он не просто так, а чтобы отключить упоминания об RLS средствами СУБД - и мне кажется, было бы странно забыть об одном ликвидированном недостатке 2000-го и при этом не забывать о другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:35 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer iscrafmтам его нет, интерфейс к нему не включен в список Уже что-то. Итак, эксперимент с попыткой подключиться генератором отчетов к вашим данным показал, что AS тут не помощник. Что, собственно, уже доказывает то мое исходное утверждение, на которое Вы пытались возразить. Мало того, ни одного генератора отчетов в списке я не заметил (если Вы про тот список, который от сводной таблицы через FastReport до Excel). Если про другой, прошу дать более точные координаты, например ключевое слово для поиска. Бред какой-то. Я не понимаю таких "высоких" мыслей. softwarerЧто касается следующего эксперимента - ответа на вопрос "а по силам ли вам разработать интерфейс для подключения Discoverer, сколько это будет стоить и сможет ли работать с требуемыми объемами данных" - если хотите, попробуйте ответить, но я и так не особо сомневаюсь в результате. я на вскидку не отвечаю на такие вопросы. Не могу сказать, сколько это будет стоить, по той простой причине что не помню какие интерфейсы предоставляет OD. надеюсь понятно. softwarer"Кадр, который черезчур сбоен" - неужели этого недостаточно, чтобы ответить на вопрос "кто сбоен"? Поясняю: кадр. То изображение, которое приведено в сделанном мной снапшоте. Экспорт - вычисленных данных. Судя по содержимому ролика, похоже, что под экспортом у вас понимается "вычислить некий запрос или комбинацию запросов и сбросить результаты в указанный формат", что не имеет ни малейшего отношения к интерфейсу с генератором отчетов. мда... Ладно, скажу так: мы не производим ПО для создания демороликов. Если оно вам кажется сбойным, то давайте обсудим, какие есть хорошие несбойные утилиты для создания демороликов. Не знаю про какой экспорт вы продолжаете упорно твердить, но попробую догадаться. Наверное про слова "Экспорт в Excel".. угадал? Интерфейс - это, например, когда генератору отчета передается на вход указание на набор данных, который он должен отработать. softwarerДа, кстати, я бы советовал вам поправить грамматическую ошибку во фразе " Запуск из web-страниц и flas-презентаций (iconsole://rundocument) " (и на будущее - настоятельно рекомендую прогонять тексты через проверку правописания) и учесть, что при просмотре в FireFox после этой строчки виден двойной промежуток (если мне не изменяет память, это одна из особенностей FireFox после <li>. ага, спасибо. обращу внимание. Наконец что-то дельное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:01 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
Bogdanov AndreyВозможно, вы с softwarer'ом понимаете друг друга, но для посторонних поясните пожалуйста. Это ролик что демонстрирует? Взаимодействие написанного вами генератора отчетов с написанным вами сервером приложений? не понимаем Ролик показывает как генератором отчетов подключаются к данным через централизованную точку входа: сервер приложений. Softwarer-у срочно понадобилось встроить коннект Discoverer-а не к его родному Applications Server , а к App Серверу Искры (зачем, не знаю. ну да ладно). Вполне возможно он не знает, что OD тоже работает с данными через сервер приложений. Вот в кратце суть разговора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:08 |
|
||
|
SUID процедуры
|
|||
|---|---|---|---|
|
#18+
softwarer, не ругайте сильно за грамматическую ошибку. При написании слова вкратце , в предыдущем сообщении, дрогнула рука и случайно нажала на пробел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:12 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34644241&tid=1544415]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 511ms |

| 0 / 0 |
