|
|
|
распределение прав на объекты mysql (базы,таблицы)
|
|||
|---|---|---|---|
|
#18+
Коллеги, всем привет! Есть один интересный вопрос по поводу определения прав пользователя ,созданного на сервере mysql . Представьте себе обычную базу на сервере , называется test . В рамках этой базы есть одна таблица, к примеру Table1. В этой таблице всего три поля: Счетчик(PK), Поле1, Поле2. И два типа ролей/пользователей User1 имеет право править Поле1 , а User2 имеет право править Поле2 . Как и откуда я могу вытащить свойства этих юзеров? Из каких таблиц? Хочу сделать Grid на PHP либо в JS, который наследует права пользователей с сервера mysql. Ну к примеру если редактирование поля2 запрещено пользователю User1, то при генерации страницы Html оно к примеру будет неактивно, то есть locked. То есть организовать наследование прав на уровне визуализированного представления. Это можно сделать при помощи запроса mysql из каких нибудь таблиц, или лучше через php организовать проверку? Ну типа если функция вернула false, то enable поля таблицы = false итд итп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 17:28:42 |
|
||
|
распределение прав на объекты mysql (базы,таблицы)
|
|||
|---|---|---|---|
|
#18+
Сергей ЛаловКоллеги, всем привет! Есть один интересный вопрос по поводу определения прав пользователя ,созданного на сервере mysql . Представьте себе обычную базу на сервере , называется test . В рамках этой базы есть одна таблица, к примеру Table1. В этой таблице всего три поля: Счетчик(PK), Поле1, Поле2. И два типа ролей/пользователей User1 имеет право править Поле1 , а User2 имеет право править Поле2 . Как и откуда я могу вытащить свойства этих юзеров? Из каких таблиц? Хочу сделать Grid на PHP либо в JS, который наследует права пользователей с сервера mysql. Ну к примеру если редактирование поля2 запрещено пользователю User1, то при генерации страницы Html оно к примеру будет неактивно, то есть locked. То есть организовать наследование прав на уровне визуализированного представления. Это можно сделать при помощи запроса mysql из каких нибудь таблиц, или лучше через php организовать проверку? Ну типа если функция вернула false, то enable поля таблицы = false итд итп. система прав на базы и таблицы, читать здесь: http://dev.mysql.com/doc/refman/5.5/en/privilege-system.html В обшем виде, более удобным считается если аппликация будет сама контролировать доступ к разным модулям через собственые таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 17:51:40 |
|
||
|
распределение прав на объекты mysql (базы,таблицы)
|
|||
|---|---|---|---|
|
#18+
javajdbcВ обшем виде, более удобным считается если аппликация будет сама контролировать доступ к разным модулям через собственые таблицы. То есть вы имеете в виду наплодить еще таблиц с описанием кто куда что имеет, а потом не использовать SHOW GRANTS а просто обращаться к этим таблицам? В общем то направление понятно, ок, спасибо!. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 18:21:32 |
|
||
|
распределение прав на объекты mysql (базы,таблицы)
|
|||
|---|---|---|---|
|
#18+
Сергей ЛаловjavajdbcВ обшем виде, более удобным считается если аппликация будет сама контролировать доступ к разным модулям через собственые таблицы. То есть вы имеете в виду наплодить еще таблиц с описанием кто куда что имеет, а потом не использовать SHOW GRANTS а просто обращаться к этим таблицам? В общем то направление понятно, ок, спасибо!.Тут решение зависит от реальных бизнес-требований. Они зачастую бывают значительно сложнее, чем позволяет организовать стандартная система прав в какой-либо СУБД. Например, у нас у ряда сотрудников есть разрешение на редактирование накладных, датированных только текущим календарным месяцем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 18:50:11 |
|
||
|
распределение прав на объекты mysql (базы,таблицы)
|
|||
|---|---|---|---|
|
#18+
Сергей ЛаловjavajdbcВ обшем виде, более удобным считается если аппликация будет сама контролировать доступ к разным модулям через собственые таблицы. То есть вы имеете в виду наплодить еще таблиц с описанием кто куда что имеет, а потом не использовать SHOW GRANTS а просто обращаться к этим таблицам? В общем то направление понятно, ок, спасибо!. Да, имено использовать свои таблицы. ГРАНТ таблицы достаточно прямолинейные. кроме того, таблицы не всегда ложатся 1:1 на бзинес-модели. Простейший пример, Юзер А должен видеть "сводную таблицу" и не видеть "таблицу детальных трансакций". А таблица под обоими запросами будет одна и таже. Или пример который привел miksoft -- ранообразные требования по гибкому доступу вы встретите на каждом шагу и никак не выполните на ГРАНТ таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 19:59:24 |
|
||
|
распределение прав на объекты mysql (базы,таблицы)
|
|||
|---|---|---|---|
|
#18+
javajdbc, Так для более гибкого доступа существуют информационные схемы данных. Во всяком случае на ms SQL есть такие вещи. То есть создается информационная схема, внутри которой мы создаем ограничения по любому доступному признаку,фильтру. К примеру есть перевозчик A1 и он имеет право видеть /создавать только те поставки, которые он везет. К примеру при выборке в информационной схеме данных такой перевозчик априори будет видеть только те записи которые отмаркированы к примеру a1. А если у него есть возможность создавать поставки она у него создается с букмаркой/значением в определенном поле a1. Создается схема, а потом уже к этой схеме присоединяется пользовательская роль,которая делает абсолютно все, но в рамках этих ограничений по схеме на глобальном уровне. На мускуле такое реализовано? В ms SQL server, особенно в старой версии 2005 очень удобно это сделано. Или в моем случае- есть три филиала,один в Европе,один в России , один а Азии . И в каждом из них есть отделы транспорта, таможни и к примеру отдел сертификации . И они могут лазить и выполнять свои обязанности в рамках созданных информационных схем. Которые ограничивают доступ на глобальном уровне с гибким тюнингом. Ну к примеру создаю я схему scheme Poland, при создании пишу в ней , что поле Country = Poland . Сохраняю эту схему. И потом присоединяю к этой схеме одну из ролей. Даже если пользователь сделает запрос SELECT * FROM table1 он по умолчанию привязан к схеме и выберет только то, что указано в схеме , а там указан фильтр только типа Польша. Такие реализации на мускуле есть? Если мускул это детище оракла, то уж тем более что то такое должно быть. То же самое можно настроить на запросы добавления,обновления,хранимки,тригеров,логов. Есть такое понятие в мускуле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 21:42:48 |
|
||
|
распределение прав на объекты mysql (базы,таблицы)
|
|||
|---|---|---|---|
|
#18+
Сергей Лалов, нет такого, в Оракле есть но в мускл врядли прикрутят. МуСкл не детише Оракла а было куплено вместе с Саном. МыСкл не позиционируется как "Ентерпрайс" левел база, а скорее для SMB (мелкий и средний бизнес). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 22:10:57 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=211&tid=1836170]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 304ms |

| 0 / 0 |
