Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
Приветствую вас, о великие гуру информикса :о) тут такое дело: есть крупная БД, в ней куча таблиц, много разный ролей, сотня пользователей и все такое.. каждый пользователь имеет свои определенные полномочия работы с БД, все это реализованно на уровне ролей. и вот встала задача динамически на протяжении открытой сессии изменять полномочия пользователя во время выполнения процедур или построения отчетов в программулине. а постоянно давать права пользователю на эту табличку нельзя например: есть пользователь user1, который не имеет доступ к табличке table1, но есть работа, которую этот пользователь должен выполнить и она предусматривает обращение к этой табличке table1. есть также роль role1, которая дает право выборки из этой таблицы. пробовал перед выборкой вставить set role role1 - ругается, говорит " Error (-19805): No privilege to set to the role." подскажите, как это побороть? :о( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 18:08 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
jeka2201подскажите, как это побороть? :о( Только упорным трудом и чтением документации. Для начала, чтобы можно было дать ссылку на нужную книгу, неплохо бы привести точную версию своего сервера, а еще лучше, Перед тем, как задать вопрос в этом форуме, прочтите здесь http://www.sql.ru/forum/actualthread.aspx?tid=229806 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 18:41 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
jeka2201Error (-19805): No privilege to set to the role." подскажите, как это побороть? :о( grant role1 to user1 Сразу скажу: я нифига не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 08:30 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис grant role1 to user1 Да, но grant может раздавать DBA, а он хочет чтоб процедура или скрипт запускалась от имени пользователя user1. Т.е., в моем понимании это должно выглядить так: 1) DBA: GRANT role1 TO user1 2) user1: SET ROLE role1 выполнение скрипта или чего-то там 3) DBA: REVOKE role1 FROM user1 Получается, что программулина должна иметь два подключения : от пользователя с правами DBA и от пользователя с правами user1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 09:42 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
knuckleДа, но grant может раздавать DBA, а он хочет чтоб процедура или скрипт запускалась от имени пользователя user1. Т.е., в моем понимании это должно выглядить так: Получается, что программулина должна иметь два подключения : от пользователя с правами DBA и от пользователя с правами user1. неправильно вы все понимаете, рассказывайте вам что нужно, а не то что вы хотите сделать. Вы хотите чтобы у пользователя были права на чтение таблицы с период времени с 7 утра до 5 вечера? А в остальное время не было? Я правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 11:01 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
jeka2201Приветствую вас, о великие гуру информикса :о) тут такое дело: есть крупная БД, в ней куча таблиц, много разный ролей, сотня пользователей и все такое.. каждый пользователь имеет свои определенные полномочия работы с БД, все это реализованно на уровне ролей. и вот встала задача динамически на протяжении открытой сессии изменять полномочия пользователя во время выполнения процедур или построения отчетов в программулине. а постоянно давать права пользователю на эту табличку нельзя например: есть пользователь user1, который не имеет доступ к табличке table1, но есть работа, которую этот пользователь должен выполнить и она предусматривает обращение к этой табличке table1. есть также роль role1, которая дает право выборки из этой таблицы. пробовал перед выборкой вставить set role role1 - ругается, говорит " Error (-19805): No privilege to set to the role." подскажите, как это побороть? :о( написать хранимую процедуру, которая будет делать то, что нужно и дать пользователю права на выполнение процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 14:55 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис knuckleДа, но grant может раздавать DBA, а он хочет чтоб процедура или скрипт запускалась от имени пользователя user1. Т.е., в моем понимании это должно выглядить так: Получается, что программулина должна иметь два подключения : от пользователя с правами DBA и от пользователя с правами user1. неправильно вы все понимаете, рассказывайте вам что нужно, а не то что вы хотите сделать. Вы хотите чтобы у пользователя были права на чтение таблицы с период времени с 7 утра до 5 вечера? А в остальное время не было? Я правильно понял? Так вопрос то не мой =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 15:04 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
товарисчи, пасиба, не партесь. я уже разобрался.. ниче не получится. все верно, права раздает DBA, а скрипт выполняется в пользовательской сесии, потому переопределить полномочия просто не хватает привелегий :о( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 16:38 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
гыгы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 16:50 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
Журавлев Денисгыгы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Так а grant кто будет делать? Если его DBA заранее даст, то получется что пользователь может в любое время приконектится, сделать себе set role и ковырять табличку, что по заданию недопустимо =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 18:43 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
knuckle Так а grant кто будет делать?grant role? А не надо. Вам проверить слабо? knuckleЕсли его DBA заранее даст, то получется что пользователь может в любое время приконектится, сделать себе set role и ковырять табличку, что по заданию недопустимо =)) Изначальная задача мне непонятна. От чего зависит может пользователь читать или не может? От температуры на марсе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 18:48 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
ОК. Ну тогда с темже успехом он может login делать и ковырять табличку. Просто не понятно, что за работу должен делать данный пользователь и в чём он работает. Ну автор темы вроде уже не считает вопрос актуальным =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 19:19 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
knuckleНу автор темы вроде уже не считает вопрос актуальным =) Автор темы, похоже, не совсем в теме :) Денис ведь прав, повторяя старую истину - "рассказывайте, что вам нужно, а не то, что вы хотите сделать". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 20:10 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
vasilisАвтор темы, похоже, не совсем в теме :) Денис ведь прав, повторяя старую истину - "рассказывайте, что вам нужно, а не то, что вы хотите сделать".Ко мне постоянно приходят люди и рассказывают, что шли по лесу, свернули направо, потом налево, потом снова направо, а там тупик, и что нам теперь делать? Долго разбираемся и в конце концов выясняем что в не надо было в лес заходить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 21:19 |
|
||
|
как динамически менять права на просмотр таблички
|
|||
|---|---|---|---|
|
#18+
jeka2201тут такое дело: есть крупная БД, в ней куча таблиц, много разный ролей, сотня пользователей и все такое.. каждый пользователь имеет свои определенные полномочия работы с БД, все это реализованно на уровне ролей. и вот встала задача динамически на протяжении открытой сессии изменять полномочия пользователя во время выполнения процедур или построения отчетов в программулине. а постоянно давать права пользователю на эту табличку нельзя например: есть пользователь user1, который не имеет доступ к табличке table1, но есть работа, которую этот пользователь должен выполнить и она предусматривает обращение к этой табличке table1. есть также роль role1, которая дает право выборки из этой таблицы. пробовал перед выборкой вставить set role role1 - ругается, говорит " Error (-19805): No privilege to set to the role." подскажите, как это побороть? :о( Не так-то легко понять ваши нужды; надеюсь, я отвечаю на правильный вопрос :-) Динамически, в течение открытой сессии, можно изменить права изменением роли; права на обе роли должны быть даны DBA'ем заблаговременно; команду SET ROLE пользователь может выполнить сам, но только не внутри транзакции. Приведённая Вами ошибка говорит, что права пользователю на роль даны не были. Альтернативный - хороший - вариант - это написать хранимую процедуру, которая делает требуемую работу (в том числе получает доступ к таблице, на которую у пользователя нет прав), и дать пользователю права на неё, а на таблицу - не давать. Это может показаться необычным, но это работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2008, 22:30 |
|
||
|
|

start [/forum/topic.php?fid=44&fpage=36&tid=1608093]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 355ms |

| 0 / 0 |
