|
|
|
Роли и селекты
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, суть темы: 1) Есть 3 пользователя - user1, user2, user3 3) Есть 3 таблицы: MAIN_TABLE id value1Заголовок 12Заголовок 2 USER1_TABLE id pril1Приложение 12Приложение 2 USER2_TABLE id pril_text1Текст приложения 12Текст приложения 2 Пользователь user1 может делать селекты только из таблиц MAIN_TABLE и USER1_TABLE , пользователь user2 может делать селекты только из таблиц MAIN_TABLE и USER2_TABLE , а пользователь user3 может делать селекты из всех таблиц. Вопрос: Как можно сделать универсальный селект сделанный от имени user1 который будет выводить такой результат: id value pril pril_text1 Заголовок 1 Приложение 1 NULL2 Заголовок 2 Приложение 2 NULL Если этот же самый запрос будет делать user2 , то, соответсвенно, результат станет таким: id value pril pril_text1 Заголовок 1 NULL Текст приложения 12 Заголовок 2 NULL Текст приложения 2 Ну а результат user3 будет таким: id value pril pril_text1 Заголовок 1 Приложение 1 Текст приложения 12 Заголовок 2 Приложение 2 Текст приложения 2 Каким путем правильней решать проблему? Писать функцию на PL\SQL и проверять результат курсора? Или есть уже какой-нибудь готовый пакет с подходящим методом? З.Ы. Oracle 11g ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2016, 09:53 |
|
||
|
Роли и селекты
|
|||
|---|---|---|---|
|
#18+
RTFM Using Oracle Virtual Private Database to Control Data Access (FAQ) и вместо "не давать select" использовать "давать запретительный предикат". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2016, 10:09 |
|
||
|
Роли и селекты
|
|||
|---|---|---|---|
|
#18+
имхо, для конкретно этой задачи, если не будут дальнейшие хотелки, самый лучший способ три вью и один результирующий определяючий какой это пользователь: Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2016, 10:45 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1887380]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
173ms |
get topic data: |
6ms |
get first new msg: |
3ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 423ms |

| 0 / 0 |
