Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Задача: Есть база данных состоящая из трех таблиц – счет(account), хоз. операция, пользователь(users) Нужно ограничить доступ пользователю или группе пользователей к части данных таблиц. Например, пользователь может видеть определенный список счетов, и может видеть перечень операций связанных с ними за определенный период времени(данные за прошлый месяц ему видеть нельзя). Для задания таких условий потребуются такие таблички: Пользователь-Счет(user_account), Пользователь-Разрешенный интервал дат для работы(user_period) Вопрос: как реализовать такие ограничения на Informix 10? Как мне кажется было бы удобно все это реализовать на View Код: plaintext 1. 2. 3. 4. 5. и вот в этом месте у меня проблема, как задать этот самый USER_NAME? Заводить кучу informix пользователей и пользоваться во view selecta функцией Informix USER мне кажется неудобно, поскольку хочется чтобы пользователи системы могли сами создавать других пользователей и раздавать привилегии. В create view использовать темповую табличку, в которой можно было бы хранить имя текщего пользователя – нельзя. Я что то не понимаю или в Informix никак не получится организовать row level security пользователей на основе view? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2006, 18:45 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
У меня пользователи сами регистрируют пользователей и права им раздают. Причем они не DBA. Пользуются хранимой процедурой, написанной с использованием Exec BladeLet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 15:57 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
И это правильное решение? Как это на безопасности скажется? Можно пример из нескольких строчек как добавляют пользователя, если не трудно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:51 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Создаем две процедуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Права на выполнение даем connect. Пользоваться так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 15:25 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
так намного красивее. спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 15:45 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис Права на выполнение даем connect. to public конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 16:46 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaFИ это правильное решение? Как это на безопасности скажется? Можно пример из нескольких строчек как добавляют пользователя, если не трудно? Это было осознанное решение - делегировать пользователям функцию раздачи прав. Вы разве не этого же хотите? Почему оно должно жутким образом сказаться на безопасности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 09:33 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
второе решение мне нравится больше потому только, что пользователи создают других пользователей и раздают привилегии на уровне приложения, а не Informix'а. Мне кажется такой вариант более гибким. К тому же использовать динамический SQL мне не нравится (не знаю почему), я никогда его не использовал и не знаю как все это будет работать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 10:36 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Местные гуру утверждают что ходить в бд одним пользователем неправильно, что надо пользоваться системой прав встроенной в субд. И то что вы хотите можно добится решением, которое предлагает Таня, т.е. она все правильно говорит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 10:57 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
а где они это говорят и по какому поводу, я не нашел. можно ссылочку. Или обяъснение вкратце - почему. Если не затруднит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 11:14 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaFа где они это говорят и по какому поводу, я не нашел. можно ссылочку. Или обяъснение вкратце - почему. Если не затруднит.Местные в смысле sql.ruшные в оракловых и делфийных конференциях. Обяснение простое вы ошибетесь при программировании и однажды пользователи увидят или удалят то что нельзя, ну и еще например админ будет видеть нормальные логины onstat -u ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 11:31 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
ТанУ меня пользователи сами регистрируют пользователей и права им раздают. Причем они не DBA. Пользуются хранимой процедурой, написанной с использованием Exec BladeLet. а можно текст этой процедуры или это секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 12:03 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaFвторое решение мне нравится больше потому только, что пользователи создают других пользователей и раздают привилегии на уровне приложения, а не Informix'а. Мне кажется такой вариант более гибким. и менее страшным? А на самом деле пользователи получат одинаковые привилегии, что в одном случае, что в другом. И пользоваться ими будут через ваше приложение. Или вы хотите застраховаться на случай применения пользователями eSQLEditor? SashaFК тому же использовать динамический SQL мне не нравится (не знаю почему), я никогда его не использовал и не знаю как все это будет работать :) да, тут не поспоришь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 13:23 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaF ТанУ меня пользователи сами регистрируют пользователей и права им раздают. Причем они не DBA. Пользуются хранимой процедурой, написанной с использованием Exec BladeLet. а можно текст этой процедуры или это секрет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 13:27 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
извините за занудство, а как пользователя из хр. процедуры создать? я хотел текст вот этой процедуры :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 14:45 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaFизвините за занудство, а как пользователя из хр. процедуры создать? я хотел текст вот этой процедуры :)это она и есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 16:52 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaFизвините за занудство, а как пользователя из хр. процедуры создать? я хотел текст вот этой процедуры :)Пользователя в операционке? Можно из хранимой процедуры вызвать шелскрипт ос, а на скрипт суидный бит, и владельцем рута. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 21:18 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисМестные гуру утверждают что ходить в бд одним пользователем неправильно, что надо пользоваться системой прав встроенной в субд. Ну вот я расскажу, к чему приводит заведение логинов в базу для каждого пользователя. Работал я как-то до дефолта в Инкомбанке. Достаточно серьезный был тогда банк. И делали мы новую систему для центра международных расчетов. Был у нас свой сервер информикса в проекте и доступ к еще одному на 12-процессорном сане (если память не изменяет) для отладки. Коннектюсь к своей базе, читаю из sysmaster-а список баз и пользователей, а их там многие десятки пользователей. Среди такого количества попался логин с таким же пасом подходящим к одной интересной базе (может слепок лежал с действующе) и узнал я зарплату начальника, его любимца лентяя и еще много интересного :). Когда много пользователей, трудно уследить за пасами. С тех пор у меня пользователи в сестеме имеют права только на исполнение хранимых процедур, да и то не всех. А пользаватель для всех работающих с системой (простых юзеров я имею в виду) один. А клиент использует виндовую верификацию и передает данные иницилизирующей хранимой процедуре... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 22:14 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Александр ФедоренкоНу вот я расскажу, к чему приводит заведение логинов в базу для каждого пользователя. Работал я Это все частные случаи. В среднем все не так. Например в оракле год назад нашли баг: пользователь имеющий право на селект таблицы может удалять и апдейтить таблицу, баг во всех версиях оракла, его пока не заткнули. И что? Какой вывод можно сделать? Что встроеной в субд системой авторизации пользоватся не надо? Я давно не встречал операционок позволяющих совпадение логина и пароля, или пользователь был рут? Это вообще административная проблема. Александр ФедоренкоС тех пор у меня пользователи в сестеме имеют права только на исполнение хранимых процедур, да и то не всех. А пользаватель для всех работающих с системой (простых юзеров я имею в виду) один. А клиент использует виндовую верификацию и передает данные иницилизирующей хранимой процедуре...Что изменилось? Пароли и логины не совпадают? Они перестали записывать пароли на бумажках и класть их под клавиатуру? Логины имеющиеся в домене трудно узнать? Я тоже делал n-tier системы которые ходят в бд одним пользователем, потому что очень удобно и красиво хранить пользователей, права и роли в собственной таблице, но я осознаю насколько это опасно и почему в общем случае это плохо. Например в предложенной мною схеме есть дыра, для пользователей с ролью resource, но я осознаю это, а мог бы просто не заметить. Александр ФедоренкоА клиент использует виндовую верификацию и передает данные иницилизирующей хранимой процедуре...А что он передает? Или в смысле хранимая процедура это UDF проверяющая в домене? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 09:26 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Александр ФедоренкоКоннектюсь к своей базе, читаю из sysmaster-а список баз и пользователей, а их там многие десятки пользователей. Среди такого количества попался логин с таким же пасом подходящим к одной интересной базе это конечно все очень страшно, но давайте поподробнее по пунктам, а то не очень понятно. 1. Вы к своей базе коннектитесь или все-таки к sysmaster? 2. Если это sysmaster, то где там список пользователей? Я ни разу не видела 3. Я видела списки пользователей в таблице sysusers. Но паролей там нет. Как вы догадались, что пароль у кого-то куда-то подходящий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 10:07 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
ТанКак вы догадались, что пароль у кого-то куда-то подходящий? Думаю, что при наличии БОЛЬШОГО кол-ва пользователей и отсутствии НОРМАЛЬНОЙ политики безопасности просто-напросто оправдалось предположение, что кто-то "не парится" и логинится с паролем, равным логину... Как писал Том - "срочно меняйте АБД" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 11:12 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Тан SashaFизвините за занудство, а как пользователя из хр. процедуры создать? я хотел текст вот этой процедуры :)это она и есть я вас не понимаю. grant connect to user_name можно дать только пользователю, который уже существует в ОС и у него уже есть заведенный пароль. Каким образом ваши пользователи создают новых пользователей, у вас из программы (х. пр.) вызывается шелскрипт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:35 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaFя вас не понимаю. grant connect to user_name можно дать только пользователю, который уже существует в ОС и у него уже есть заведенный пароль. Каким образом ваши пользователи создают новых пользователей, у вас из программы (х. пр.) вызывается шелскрипт? 1. grant connect to user_name можно дать кому угодно, никакой связи с наличием\отсутствием пользователя в ОС здесь нет. 2. Мои пользователи не создают пользователя в операционке, они создают их в базе и раздают им права в базе. Хотите конкретный ответ - задайте конкретный вопрос. 3. Если вдруг (все в жизни бывает) вы используете ОС Windows, и у вас есть домен (так тоже может быть), то вам нет никакой нужды создавать пользователя в операционке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:53 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЭто все частные случаи. В среднем все не так. Например в оракле год назад нашли баг: пользователь имеющий право на селект таблицы может удалять и апдейтить таблицу, баг во всех версиях оракла, его пока не заткнули. И что? Какой вывод можно сделать? Что встроеной в субд системой авторизации пользоватся не надо? Как ни странно, но в серьезных системах именно так и поступают (или поступали :)) Для большинства случаев , конечно, достаточно встроенной в СУБД, но они не обладают теми гибкими и мощными возможностями, которые могут понадобиться, когда к вопросу безопасности подходят очень строго. Журавлев Денис Я давно не встречал операционок позволяющих совпадение логина и пароля, или пользователь был рут? Как, Денис, ты уже так давно не видел всеми любимой Windows ? :)) На половине инстансов (при начинающих админах) можно не задумываясь ввести пароль для пользователя informix... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 13:26 |
|
||
|
Права пользователей (Row Level) & View
|
|||
|---|---|---|---|
|
#18+
SashaF Тан SashaFизвините за занудство, а как пользователя из хр. процедуры создать? я хотел текст вот этой процедуры :)это она и есть я вас не понимаю. grant connect to user_name можно дать только пользователю, который уже существует в ОС и у него уже есть заведенный пароль. Каким образом ваши пользователи создают новых пользователей, у вас из программы (х. пр.) вызывается шелскрипт? Для таких целей обычно делается сервер приложений (в котором делается своя гибкая система прав и ограничений на доступ к информации в БД), а прямой доступ к БД просто закрыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 13:32 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=34206557&tid=1608498]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 342ms |

| 0 / 0 |
