|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123 http://www.sql.ru/articles/mssql/01072301causesofsqltransactionlogfillingup.shtml Читай пункт 2: При наличии в журнале незавершённых транзакций: журнал транзакций может быть усечен только до самой старой ошибка 1105 админу возникает как в 3-х звенке/, так и 2-х звенке при неправильно написанном коде. Я тебе говорю, читай пункт 2. Причем тут ошибка 1105? Почему, когда тебе говоришь делай "А", ты делаешь "Б" и как ни в чем не бывало продолжаешь дискуссию? Кому понравится такая "скачкообразная" нить общения, давай последовательно разбираться. Я тебе сказал прочитать пункт 2, даже процитировал некоторые вещи. Итак вопрос, ты прочитал этот пункт с шестью подпунктами? Какие вопросы возникли, изучая данный материал? Petro123МСУГранты грантами, но у пользователя есть свобода действий в виде SQL тогда у 3-х звенки есть свобода в HQL 1. Во-первых, причем тут HQL. Опять тебя заносит по сторонам. Трехвенка обязана быть на хибернейте? А если она использует Entity Framework, L2S или классический ADO.NET? 2. Во-вторых, у трехзвенки есть свобода во всём, т.к. это честный black box для пользователя. За её реализацией скрывается любой прикладной код. Влияние пользователя на этот код в контексте изменения логики или хакерской инъекции - минимально. В случае с классической двухзвенкой - максимально. И? _модМСУА в случае двухзвенки, у пользователя 100% возможности SQL, которым он может оперировать прямо в боевой базе на продакшене. Разница есть? Этой воэможности его можно 100% лишить (что и делается) Каким образом? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:19 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУКаким образом? А что у вас пользователи все админы ? Есть масса способов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:25 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
_модА что у вас пользователи все админы? Я вроде такого нигде не упоминал. Я говорил о том, что пользователь может выполнить SQL запрос минуя ПО. _модЕсть масса способов. Какие способы? Прошу учитывать, чтоб СУБД может быть любая, и сиквел, и оракл, и даже огнептица. Есть какое-то универсальное решение? Усложним задачу: требуется обращаться к нескольких источникам (MS SQL, Oracle, SharePoint, SAP, MS CRM, 1C, веб сервисы и так далее - на любой вкус), джойтиться с этим источниками, осуществлять какую-то логику. Что будем делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:34 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУПричем тут ошибка 1105? при том, что ниже написаны причины данной ошибки сиквела. Они не имеют отношения к 2-х или 3-х звенке. Всё просто. авторт.к. это честный black box для пользователя тебе ниже сказали, что API на ХП это тоже честный black box для пользователя ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:41 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУУсложним задачу: т - берём 3-х звенку))))) Теперь упростим задачу)))) Умеешь упрощать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:43 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123МСУПричем тут ошибка 1105? при том, что ниже написаны причины данной ошибки сиквела. Они не имеют отношения к 2-х или 3-х звенке. Всё просто. Я же тебе уже объяснял, что в случае с 2-х звенкой это сделать на порядок проще, открыл Management Studio или батник и понаоткрывал транзакций. В случае, если есть прямой доступ к таблицам - вообще жесть, без комментариев. В случае 3-х звенки ты такие пакости уже не сделаешь. Есть только метод и баста, что скрыто за ним - ты не знаешь и не узнаешь. Этим методом может управлять тот же супер умный IIS, который элементарно может кешировать вызовы, блокировать чатные вызовы от конкретного IP адреса (а-ля ддос) и еще куча всего и с горкой. Управлять безопасностью и распределять вызовы с помощью сервера приложений на порядок проще и надежнее. Про масштабирование я вообще молчу. Petro123тебе ниже сказали, что API на ХП это тоже честный black box для пользователя Не только API должно быть черным ящиком, а и само хранилище данных. Чудесно получается, вот вам база, но API мы вам не покажем. Это просто цирк. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:50 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123авторт.к. это честный black box для пользователя тебе ниже сказали, что API на ХП это тоже честный black box для пользователяНу сказали же: Код: sql 1. 2. 3.
Будем в начале каждой процедуры ставить: Код: sql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:50 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123МСУУсложним задачу: т - берём 3-х звенку))))) Теперь упростим задачу)))) Умеешь упрощать? О как, а ты давай на двухзвенке, слабо? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:50 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К, а вы думаете декларативно управлять транзакциями..или там, значками аннотациями на методах-классах попроще? Везде свои заморочки с вложенностью транзакций. Вроде бы она автономна, а вроде бы в комплексе для одной общей бизнес-транзакции. imho ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 17:25 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123Алексей К, а вы думаете декларативно управлять транзакциями..или там, значками аннотациями на методах-классах попроще? Везде свои заморочки с вложенностью транзакций. Вроде бы она автономна, а вроде бы в комплексе для одной общей бизнес-транзакции. imhoЯ знаю, что в сервере приложений я могу централизованно запретить вызов всех методов во внешней транзакции. А тут в начале каждой процедуры такую проверку ставить, ну не знаю, лениво что ли... Да большинство об этом вообще не задумываются. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 18:21 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К, помимо проверки писать сложную логику на унылом SQL - идиотизм. Тонны непереваримого сиквел кода превращаются в такую неповоротливую навозную кучу навоза, что даже сам создатель уходит в ступор. То ли дело сопровождать, модернизировать, рефакторить и масштабировать ООП код сервера приложений, интеллисенс, объектная мощь языка, невообразимое количество паттернов и иных расширений, автодокументация, классы, наследование с полиморфным поведением, куча альтернатив по хостингу сервиса и так далее. Что ни говори, но писать логику на SQL это жесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 20:53 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУпомимо проверки писать сложную логику на унылом SQL - идиотизм. я что-то пропустил? у нас есть на чём писать SUM MAX и GROUP BY? Особенно для отчётов? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 21:21 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123МСУпомимо проверки писать сложную логику на унылом SQL - идиотизм. я что-то пропустил? у нас есть на чём писать SUM MAX и GROUP BY? Особенно для отчётов?А у нас в квартире газ есть LINQ, а у вас? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 23:02 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К, в нашем болоте HQL. Но хаять SQL никому в голову не придёт, наоборот, его знание только приветствуется. Т.к. отчётники не сделать на LINQ \ HQL или вообще, на NoSQL БД ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 23:28 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123МСУпомимо проверки писать сложную логику на унылом SQL - идиотизм. я что-то пропустил? у нас есть на чём писать SUM MAX и GROUP BY? Особенно для отчётов? Во-первых, это не логика. Во-вторых, есть орм. В-третьих, отчеты это вообще отдельная тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 23:37 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К, "Магия" Linq http://dev-sol.blogspot.ru/2011/12/linq.html Код: plaintext 1. 2. 3.
Другой пример. Linq предлагает замечательные метода: Count и ElementAt. И вот однажды я встречаю код, подобный следующему: var objects = sourceObject.Where(x => SomePredicate(x)); for (int i = 0; i < objects.Count(); i++) { var obj = objects.ElementAt(i); ProcessIt(obj); Что я хочу сказать. Linq выражения вычисляются лениво. Это замечательно в некоторых сценариях. Но не все, к сожалению понимают, что когда вызывается метод Count(), то набор вычисляется полностью, начиная с первого и до последнего элемента. Причем при каждом вызове Count() – заново. В результате, в этом примере, при обращении к Count() метод SomePredicate вызовется не N раз (N – количество элементов в sourceObjects), а N*M раз (M – количество элементов в objects). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 23:39 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123Алексей К, в нашем болоте HQL. Но хаять SQL никому в голову не придёт, наоборот, его знание только приветствуется. Т.к. отчётники не сделать на LINQ \ HQL или вообще, на NoSQL БД ))) Сам SQL никто не хаит, он нужен для того, чтобы сделать тупо выборку. Речь о логике. Разницу между логикой и операторами агрегации понимаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 23:40 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУВо-первых, это не логика. Во-вторых, есть орм. В-третьих, отчеты это вообще отдельная тема. Дык приведи свою бизнес-логику. ОРМ делает из таблицы Заказы на 50 млн. - коллекцию на 50 млн. Отчёты это отдельная тема, которая ОРМ не по зубам. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 23:43 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
МСУРазницу между логикой и операторами агрегации понимаешь? Наверно такая: - коэффициент надёжности (НЕнадёжности) клиента для займа равен среднемесячной просрочке по платежам сотового оператора. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 23:46 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
авторMasterZivПонимаешь правильно. Но кол-во звеньев на самом деле никак не связано с безопасностью. Очень даже связано. Ещё раз, по буквам: ВООБЩЕ НИКАК НЕ СВЯЗАНО. В любом раскладе звеньев есть 20 способов правильно организовать контроль безопасности или наоборот его пролажать до нуля. авторБД помещают за firewall'ом, доступ к ней по другому протоколу. Ну да, а firewall тебе автоматом типа всю безопасность обеспечит... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 01:46 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Я чувствую, тут собралось множество настоящих знатоков многозвенной безопасности, полагаю, что автор безмерно щаслиф! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 01:48 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123Алексей К, в нашем болоте HQL.Тут принципиальная разница. LINQ встроен в сам язык. Имеем строгую типизацию со всеми вытекающими. Petro123Но хаять SQL никому в голову не придёт, наоборот, его знание только приветствуется.Само собой. LINQ-to-SQL пишется из расчёта, какой SQL будет по нему сгенерирован, и какой у него будет план выполнения. Petro123Т.к. отчётники не сделать на LINQ \ HQL или вообще, на NoSQL БД )))LINQ - штука новая, неосвоенная. В настоящее время активно пробуем делать на нём аналитику, которая раньше делалась на SQL. Всё получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 08:29 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123Алексей К, "Магия" Linq http://dev-sol.blogspot.ru/2011/12/linq.html Код: plaintext 1. 2. 3.
Другой пример. Linq предлагает замечательные метода: Count и ElementAt. И вот однажды я встречаю код, подобный следующему: var objects = sourceObject.Where(x => SomePredicate(x)); for (int i = 0; i < objects.Count(); i++) { var obj = objects.ElementAt(i); ProcessIt(obj); Что я хочу сказать. Linq выражения вычисляются лениво. Это замечательно в некоторых сценариях. Но не все, к сожалению понимают, что когда вызывается метод Count(), то набор вычисляется полностью, начиная с первого и до последнего элемента. Причем при каждом вызове Count() – заново. В результате, в этом примере, при обращении к Count() метод SomePredicate вызовется не N раз (N – количество элементов в sourceObjects), а N*M раз (M – количество элементов в objects). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 08:30 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Petro123МСУВо-первых, это не логика. Во-вторых, есть орм. В-третьих, отчеты это вообще отдельная тема. Дык приведи свою бизнес-логику. ОРМ делает из таблицы Заказы на 50 млн. - коллекцию на 50 млн. Отчёты это отдельная тема, которая ОРМ не по зубам. Тут недавно было обсуждений. Приводил пример реализации на EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 08:32 |
|
2-х звенка vs. 3-х звенка и безопасность
|
|||
---|---|---|---|
#18+
Алексей К Тут недавно было обсуждений. Приводил пример реализации на EF. действительно) Портянка не для слабонервных. Тут палка о двух концах. Если пытаться писать запросы к РСУБД по ООП, то процедуры не должны быть портянками ((с) МСУ) У меня на работе было даже требование - размер не больше окна монитора)). А на SQL код всё таки более лаконичный при работе с множествами и кортежами записей. Вероятно Нелюбовь к SQL это наверное личное)).....как попытка не знать HTML и JS в 3-х звенке\веб-проекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 10:33 |
|
|
start [/forum/topic.php?fid=33&msg=38424659&tid=1547650]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
125ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 236ms |
0 / 0 |