powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Можно ли как-то запретить прикладникам выборки без индексов?
8 сообщений из 8, страница 1 из 1
Можно ли как-то запретить прикладникам выборки без индексов?
    #36651664
falcon111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Можно ли как-то запретить прикладникам выполнять выборки по определенным либо по не индексированным полям?

Пример:

table example (
a integer,
b lvarchar(16384)
);
create index on example(a);

нормальные люди пишут:
insert into example(a, b) values(4, 'some data');
затем поиск select from example where a==4...

умельцы пишут:
insert into example(b) values('4:'||'some data');
затем поиск select from example where b like '4:%'

Пример, конечно приблизительный, чтобы передать саму суть талантов.

Отсюда возник вопрос - можно как-то запретить в принципе использование определенных полей в выборках так, чтобы в where оно было недоступно, но доступно в select-ах. Т.е. чтобы поиск делался по тем полям, которые в базе заложены для этого - по индексам, чтобы искало нужные строки и уже там выдавало громоздкие и/или не индексированные поля.

Через доступы - если отобрать право select на определенные поля - то они становятся недоступными СОВСЕМ, поэтому это не решение.

Есть какое-то решение такой проблемы, кроме как стоять с дубинкой у программистов-прикладников над душой?

Сервер 11.50FC6.
...
Рейтинг: 0 / 0
Можно ли как-то запретить прикладникам выборки без индексов?
    #36651765
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, нельзя.
Идиотизм программистов лечится участием DBA / Dev DBA в разработке на ранней стадии проекта.
...
Рейтинг: 0 / 0
Можно ли как-то запретить прикладникам выборки без индексов?
    #36653393
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
falcon111, с ходу отобрать такое право, НАВЕРНОЕ, нельзя... :)

Но хотя бы подумать над методами контроля (в том числе и [полу]автоматическими) - нужно.

Проблема, в первую очередь, в производительности, как я понял.

Контроль на ранней стадии проекта, как предлагает Выбегалло, хорошо - но мало (разве что сразу выгонять из проекта таких девелоперов %)). Дополнительно поможет обучение методике составления SQL-запросов, в котором напомнить, что проверка производительности - задача сначала разработчика, и только потом тестировшика - если этот тестировщик есть ваще :).
Ну и, если позволяют мощности системы, устраивать контроль по факту случившегося.
Источник: лог sql-запросов. Его анализ позволит и другие интересные вещи обнаружить.
Чтобы не ковырятся во всем логам, можно обращать внимание на "долгоиграющие" и "сильножрущие"...
Ну а уж анализировать разбором SQL-запросы и сопоставлять по каким-то правилам со схемой БД - совсем не "наколеночная" работа...
...
Рейтинг: 0 / 0
Можно ли как-то запретить прикладникам выборки без индексов?
    #36653534
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой
Источник: лог sql-запросов. Его анализ позволит и другие интересные вещи обнаружить.

oat+sqltrace
...
Рейтинг: 0 / 0
Можно ли как-то запретить прикладникам выборки без индексов?
    #36653826
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
falcon111
Есть какое-то решение такой проблемы, кроме как стоять с дубинкой у программистов-прикладников над душой?
Есть, но оно длительное по времени и затратное по ресурсам.
Это медленное и неуклонное повышение квалификации ваших разработчиков и ПМ в частности.
Как показывает мой опыт, никакие частные карательные меры или ухищрения технологические, о которых вы просите, не помогут в долгосрочной перспективе.
Через руководство, убеждение в необходимости, пропоганду и пр. организовывать или краткие "технические семинары" (по 1-2 часа в неделю) или учебные программы (в нерабочее время или рабочее, ежедневно, по 2-4 часа в течении 1-2 недель с избранными , наиболее насущными вопросами. Чтобы не спали и внимательно слушали - тесты, экзамены и уже репресивные меры при повторении ошибок. Написание "памяток" и формирование "базы знаний" с типовыми ошибками, через которую прогонять новичков. Потом, при сформированном ядре нрамотной команды, новички уже значительно быстрее впитывают опыт старых членов команды и ошибок становится минимум.
Все остальное - грамотное проектирование, комплексное тестирование, управление проектом и пр. остается, конечно же, но уровень программистов просто нужно повышать (или набирать с рынка, если можете себе позволить).
...
Рейтинг: 0 / 0
Можно ли как-то запретить прикладникам выборки без индексов?
    #36653963
falcon111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Организационные методы поднятия квалификации программистов и методы разбора полетов постфактум, глядя в лог запросов - это понятно.

Жаль что не предусмотрено отдельного доступа для таких целей.

Всем спасибо за ответы, будем бороться с маразмом дальше :)
...
Рейтинг: 0 / 0
Можно ли как-то запретить прикладникам выборки без индексов?
    #36654721
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
falcon111
Можно ли как-то запретить прикладникам выполнять выборки по определенным либо по не индексированным полям?

Сам подумай по технологии запретить использовать функционал по получению данных в одном месте (WHERE) и разрешить к тому же функционалу, но в другом месте (SELECT).
Видеть право имеешь, а вот искать по этим данным - нет. Это уже больше на баг похоже... :)
...
Рейтинг: 0 / 0
Можно ли как-то запретить прикладникам выборки без индексов?
    #36656670
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойfalcon111, с ходу отобрать такое право, НАВЕРНОЕ, нельзя... :)

Но хотя бы подумать над методами контроля (в том числе и [полу]автоматическими) - нужно.

Проблема, в первую очередь, в производительности, как я понял.

Контроль на ранней стадии проекта, как предлагает Выбегалло, хорошо - но мало (разве что сразу выгонять из проекта таких девелоперов %)). Дополнительно поможет обучение методике составления SQL-запросов, в котором напомнить, что проверка производительности - задача сначала разработчика, и только потом тестировшика - если этот тестировщик есть ваще :).


Пардон, но, судя по примеру - это явная попытка нарушения нормализации. То есть девелоперы хотят хранить не одно значение, а несколько. В одном столбце.
Сначала прочитать лекции "архитекторам" и примкнувшим к ним кодерам, что такое 3NF и почему за ее нарушение без ОЧЕНЬ веских причин - расстрел за сараем с последующим увольнением по профнепригодности. Потом - отслеживать, расстреливать и увольнять.

А умение писать SQL запросы появится само.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Можно ли как-то запретить прикладникам выборки без индексов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]