|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
Симонов Денисsphinx_mv, там было не "не думаю", а "я бы не сказал"А я грешным делом (почему-то) предполагал, что если кто-то что-то говорит/пишет, этот кто-то пишет/говорит о том, о чем думает и то, что об этом думает... Но оказалось, что для некоторых это не совсем так... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 13:40 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
sphinx_mv, Это мощно. Я не осилил. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 14:10 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
On 01.07.2014 15:44, FreemanZAV wrote: > Ну я бы не сказал. > Например в mssql нет пакетов Пакеты эти ваши хвалёные нахрен не нужны. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:15 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
MasterZivПакеты эти ваши хвалёные нахрен не нужны. Наши хвалёные базы данных, кстати, тоже не нужны. Любой приличный программист напишет куда более эффективную собственную реализацию для чтения-записи форматированных данных из файла/файлов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:17 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
sphinx_mvА я грешным делом (почему-то) предполагал, что если кто-то что-то говорит/пишет, этот кто-то пишет/говорит о том, о чем думает и то, что об этом думает... Но оказалось, что для некоторых это не совсем так...Писать/говорить могут не только лишь все, мало кто может это делать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:26 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
MasterZivOn 01.07.2014 15:44, FreemanZAV wrote: > Ну я бы не сказал. > Например в mssql нет пакетов Пакеты эти ваши хвалёные нахрен не нужны. Да, в такую погоду лучше пивка ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:44 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
FreemanZAVДа, в такую погоду лучше пивка А под пивко можно обсудить следующий вопрос. По какому принципу в Oracle "принято" заворачивать функционал в один пакет, при условии невозможности разграничения прав доступа на функционал внутри пакета? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 19:46 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklinА под пивко можно обсудить следующий вопрос. По какому принципу в Oracle "принято" заворачивать функционал в один пакет, при условии невозможности разграничения прав доступа на функционал внутри пакета? Это довольно бессмысленный вопрос, примерно аналогичный "а по какой схеме в Аргентине принято играть в футбол?" Есть разные подходы. Для примера, давайте предположим, что мы должны реализовать две бухгалтерские операции, приход и расход. Нередко их пишут в один пакет и грантуют бухгалтеру, явно или неявно подразумевая "нам не потребуется давать право только на одну из них". Бухгалтер имеет к ним доступ, секретарша - нет. Если ставим задачу дать доступ только на приход - куча вариантов на выбор. Например, пользователю грантуется только таблица прихода, но не расхода (что, собственно, должно быть независимо от пакета), а пакет выполняется с правами пользователя - вуаля, доступ к процедуре "расход" у него есть, но радости ему с того никакой. Если мы хотим выполнять пакет с правами создателя, то обычно происходит разделение на интерфейс и реализацию. Делается недоступный снаружи пакет "бухгалтерия", реально выполняющий необходимые операции, плюс те или иные оболочки, которые и грантуются пользователям. Альтернативно, никто не мешает воспользоваться row-level security, опять же зарезать пользователю возможность работать с недоступными ему данными. В случае бухгалтерии это, наверное, наиболее частый подход в серьёзной работе, потому что необходимо делать бизнес-логику типа "бухгалтеру доступны только некоторые юр.лица", "доступны только операции до 10.000.000 рублей" итп. Хотя некоторые кривые люди, конечно, будут делать такое непосредственно в коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:04 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
softwarer, Ну и ещё, как вариант, можно свою ACL систему организовать. Спорный подход, но имеет место быть ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:14 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
FreemanZAV, ну, сомнительных подходов всяко более одного. Можно даже делать как в MSSQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:18 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklin, Можно много говорить, что пакеты не нужны, но когда начинаешь пользоваться, понимаешь все преимущества. Причём пакеты, это не только способ организации функций и процедур. В них можно хранить в оперативной памяти всякую фигню. Тоже спорно, но иногда очень удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:19 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
softwarer, авторЭто довольно бессмысленный вопрос, примерно аналогичный "а по какой схеме в Аргентине принято играть в футбол?" Вопрос, всё-таки носил практический смысл. Сожалею, что дополнительно этого не указал и допустил возможность различных толкований. авторЕсть разные подходы. Для примера, давайте предположим, что мы должны реализовать две бухгалтерские операции, приход и расход. Нередко их пишут в один пакет и грантуют бухгалтеру, явно или неявно подразумевая "нам не потребуется давать право только на одну из них". Бухгалтер имеет к ним доступ, секретарша - нет. Если ставим задачу дать доступ только на приход - куча вариантов на выбор. Например, пользователю грантуется только таблица прихода, но не расхода (что, собственно, должно быть независимо от пакета), а пакет выполняется с правами пользователя - вуаля, доступ к процедуре "расход" у него есть, но радости ему с того никакой. Начну с того, что считаю в принципе недопустимым раздачу прямых грантов пользователям на таблицы. И позволю себе привести другой пример. Маркетинговая акция - т.е. некая активность, при выполнении условий которой клиент получает определенные бенефиты. Как легко себе представить маркетинговая акция - это не одна таблица. И нужно решить простую задачу. Разрешить заводить маркетинговые акции рядовым менеджерам дирекции по маркетингу, но включать\выключать акцию дать возможность только определенному кругу лиц. Я правильно понимаю, что я должен иметь как минимум два пакета? Первый - отвечающий за создание и модификацию акций, второй - за включение\выключение их? Рядовым менеджерам грантовать только первый, "определенному кругу лиц" - оба? Теперь, если я захочу разделить права на просмотр\модификацию акций межу разными группами рядовых менеджеров, что я должен сделать? Создать отдельно пакеты, в которых будет код только на модификацию\только на просмотр? Опять грантовать кому один, а кому два, а "определенному кругу лиц" все три? авторАльтернативно, никто не мешает воспользоваться row-level security, опять же зарезать пользователю возможность работать с недоступными ему данными. Нет, нет. Мой вопрос не касался row-level security, которая "встроена в Oracle" и которая реализуется с помощью дополнительных телодвижений в MS SQL. Вопрос касался именно прав на выполнение того или иного функционала в виде хранимого серверного кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:31 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
FreemanZAVМожно много говорить, что пакеты не нужны Я этого не говорил. FreemanZAVпонимаешь все преимущества Вот я и пытаюсь их понять. При этом не забыв про недостатки. FreemanZAVПричём пакеты, это не только способ организации функций и процедур. В них можно хранить в оперативной памяти всякую фигню. По-моему это уже мы как-то обсуждали? О хранении "всякой фигни". Если я не прав, то можно Вас попросить какой-нибудь пример? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:38 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
FreemanZAVНу и ещё, как вариант, можно свою ACL систему организовать. Ни есть ли Oracle Database Vault "своя система ACL"? Если в другой СУБД для реализации каждый раз нужен строго определенный и ограниченный набор объектов, будет ли эта реализация чем-то отличаться от "своей системы ACL" в Oracle? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:49 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklinНачну с того, что считаю в принципе недопустимым раздачу прямых грантов пользователям на таблицы. Пожму плечами. В некоторых древних системах и использование SQL считалось недопустимым. pkarklinВопрос, всё-таки носил практический смысл Позволю себе предположить, что вопрос носил характер "как таки действовать в редком случае бесконечного дробления прав на элементарные действия". Что я хотел бы донести, так это то, что вопрос перпендикулярен понятию пакетов. Та проблема, в которую Вы пытаетесь их загнать, возникнет и на Вашей любимой СУБД, как только я спрошу "как мне програнтовать Васе возможность выполнить ХП с параметром А и при этом не давать выполнить ту же ХП с параметром Б". Разница в том, что в Oracle её можно решить, не теряя преимуществ пакетов. Например, если Вы хотите грантовать одиночные процедуры - я за пару минут напишу код, который будет пробегать по установленным пакетам и для каждой процедуры A из пакета Б создавать хранимку Б_А, её вызывающую. Как раздать гранты, надеюсь, пояснять не надо. То, что удобство программирования при этом не теряется - надеюсь, тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:06 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
softwarer, авторПожму плечами. В некоторых древних системах и использование SQL считалось недопустимым. Не совсем понял суть высказывания. Т.е. Вы считаете "это" допустимым? Под "это" я понимаю возможность обхода конечным пользователем заложенной в серверный код бизнес-логики в случае наличии прямого доступа к таблицам. авторПозволю себе предположить, что вопрос носил характер "как таки действовать в редком случае бесконечного дробления прав на элементарные действия". Вопрос носил характер вполне обычного ролевого разграничения прав доступа. Мы же о бизнес-логике говорим? Т.е. о бизнес-процессах, а там действия выполняют роли, а не пользователи, таблицы, или пакеты. авторЧто я хотел бы донести, так это то, что вопрос перпендикулярен понятию пакетов. Мне казалось, я задал вполне конкретный вопрос о прикладном функционале пакетов. авторТа проблема, в которую Вы пытаетесь их загнать Никого я никуда не пытаюсь загнать. Я обрисовал задачу и спросил, правильно ли я понимаю, как я должен использовать пакеты. Ответа, кстати, я так и не получил, прав я или нет в своих выводах. авторкак только я спрошу "как мне програнтовать Васе возможность выполнить ХП с параметром А и при этом не давать выполнить ту же ХП с параметром Б". Разница в том, что в Oracle её можно решить, не теряя преимуществ пакетов. Например, если Вы хотите грантовать одиночные процедуры - я за пару минут напишу код, который будет пробегать по установленным пакетам и для каждой процедуры A из пакета Б создавать хранимку Б_А, её вызывающую. Как раздать гранты, надеюсь, пояснять не надо. То, что удобство программирования при этом не теряется - надеюсь, тоже. Не совсем понял, причем тут "за пару минут напишу код"?! Я сейчас не веду речь о каких-то workaroundах. Я о стандартном функционале веду речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:24 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklinНачну с того, что считаю в принципе недопустимым раздачу прямых грантов пользователям на таблицы. И позволю себе привести другой пример. Маркетинговая акция - т.е. некая активность, при выполнении условий которой клиент получает определенные бенефиты. Как легко себе представить маркетинговая акция - это не одна таблица. И нужно решить простую задачу. Разрешить заводить маркетинговые акции рядовым менеджерам дирекции по маркетингу, но включать\выключать акцию дать возможность только определенному кругу лиц. Я правильно понимаю, что я должен иметь как минимум два пакета? Первый - отвечающий за создание и модификацию акций, второй - за включение\выключение их? Рядовым менеджерам грантовать только первый, "определенному кругу лиц" - оба? нет. вы должны иметь отдельный пакет который проверит, что может и чего не может ваш юзер. для всех пакетов которые может дернуть пользователь делайте отдельный service layer - пакеты обертки вокруг пакета marketing_api. обертка все и проверит. у меня эти обертки автоматом генерируюся самопальной тулзой (процедуркой). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:29 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklinFreemanZAVМожно много говорить, что пакеты не нужны Я этого не говорил. FreemanZAVпонимаешь все преимущества Вот я и пытаюсь их понять. При этом не забыв про недостатки. FreemanZAVПричём пакеты, это не только способ организации функций и процедур. В них можно хранить в оперативной памяти всякую фигню. По-моему это уже мы как-то обсуждали? О хранении "всякой фигни". Если я не прав, то можно Вас попросить какой-нибудь пример? Честно - нет никакого желания ничего объяснять. Да и вряд ли какие-либо объяснения имеют смысл. Я считаю, что пакеты - это правильная организация кода. Несогласные найдут десятки аргументов, парировать каждый - это очень трудоёмко. В oracle есть ещё и объекты, которые я считаю тоже неплохим решением, хотя почему-то их мало используют ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:30 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklinFreemanZAVНу и ещё, как вариант, можно свою ACL систему организовать. Ни есть ли Oracle Database Vault "своя система ACL"? Ничего не могу сказать, почитайте документацию ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:32 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
FreemanZAV, авторЧестно - нет никакого желания ничего объяснять. авторНичего не могу сказать, почитайте документацию Спасибо! Ваша позиция понятна. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:37 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklinFreemanZAV, авторЧестно - нет никакого желания ничего объяснять. авторНичего не могу сказать, почитайте документацию Спасибо! Ваша позиция понятна. Ну я никак не могу, при всём желании, объяснить лучше, чем документация. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:43 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
Yo.!, авторнет. вы должны иметь отдельный пакет который проверит, что может и чего не может ваш юзер. для всех пакетов которые может дернуть пользователь делайте отдельный service layer - пакеты обертки вокруг пакета marketing_api. обертка все и проверит Я правильно понимаю, что это построение "своего" ACL над имеющейся системой разграничения прав доступа сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:51 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
FreemanZAVНу я никак не могу, при всём желании, объяснить лучше, чем документация. Если бы всё можно было бы черпать из учебников, то зачем нужны учителя?! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:56 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
pkarklinFreemanZAVНу я никак не могу, при всём желании, объяснить лучше, чем документация. Если бы всё можно было бы черпать из учебников, то зачем нужны учителя?! Учителя нужны, но я, лично, педагог плохой. Для педагога самое главное - терпение, а у меня его нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:59 |
|
Разница SQL синтаксиса в MSSQL и Oracle
|
|||
---|---|---|---|
#18+
FreemanZAVsoftwarer, Ну и ещё, как вариант, можно свою ACL систему организовать. Спорный подход, но имеет место бытьOracle. Fine grained access control . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 23:30 |
|
|
start [/forum/topic.php?fid=35&msg=38686222&tid=1552287]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 155ms |
0 / 0 |