|
|
|
Линтер. Назначение ролей
|
|||
|---|---|---|---|
|
#18+
В базе должно быть несколько администраторов. При создании пользователя им необходимо присвоить роль пользователю. Но назначать роли может только владелец роли, т.е. только один из админов. Можно было бы завести одного пользователя для всех админов, но это не секьюрно. Как можно сделать чтобы все админы могли назначать роли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2009, 19:43 |
|
||
|
Линтер. Назначение ролей
|
|||
|---|---|---|---|
|
#18+
Добрый день, alukart! В принципе владельцем роли является ее создатель и назначать роль может только он. Если это Линтер версии 6.0 и выше, то админ-создатель ролей может создать хранимые процедуры для назначения и отмены ролей и дать другим админам права на выполнение этих процедур из-под своего логина. Примерно так: username SYSTEM/MANAGER create or replace procedure GRANT_ROLE (in USER_NAME char(66); in ROLE_NAME char(66)) code execute direct "grant role \"" + ROLE_NAME + "\" to \"" + USER_NAME + "\";"; end; create or replace procedure REVOKE_ROLE (in user_name char(66); in ROLE_NAME char(66)) for debug code execute direct "revoke role \"" + ROLE_NAME + "\" from \"" + USER_NAME + "\";"; end; grant dba to ADMIN1; grant dba to ADMIN2; grant resource to USER1; grant resource to USER2; create or replace role ROLE1; grant execute as owner on GRANT_ROLE to ADMIN1; grant execute as owner on GRANT_ROLE to ADMIN2; grant execute as owner on REVOKE_ROLE to ADMIN1; grant execute as owner on REVOKE_ROLE to ADMIN2; create or replace table TBL(I int); insert into TBL values (1); create or replace public synonym TBL for TBL; grant select on TBL to ROLE1; username ADMIN1/ ! grant 1 execute SYSTEM.GRANT_ROLE('USER1','ROLE1') as owner; username USER1/ ! select 1 - yes select * from TBL; username USER2/ ! select 2 - no select * from TBL; username ADMIN2/ ! revoke 1 execute SYSTEM.REVOKE_ROLE('USER1','ROLE1') as owner; execute SYSTEM.GRANT_ROLE('USER2','ROLE1') as owner; username USER1/ ! select 1 - no select * from TBL; username USER2/ ! select 2 - yes select * from TBL; Возможно, этого будет достаточно в Вашем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 20:09 |
|
||
|
Линтер. Назначение ролей
|
|||
|---|---|---|---|
|
#18+
alukart, cразу не увидел Ваше сообщение - обычно вопросы по Линтеру появляются в разделе "Другие СУБД". Еще можно писать на support@relex.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 20:12 |
|
||
|
Линтер. Назначение ролей
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ xuser, но к сожалению это Линтер 5.9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2009, 19:17 |
|
||
|
Линтер. Назначение ролей
|
|||
|---|---|---|---|
|
#18+
В 5.9, по-видимому, средствами СУБД этого не сделать. Идеология такая, что за каждый объект отвечает только один пользователь - только владелец распоряжается созданными им объектами. Это, в частности, исключает конфликты между действиями разных админов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2009, 13:36 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=88&tid=1543257]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
18ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 322ms |

| 0 / 0 |
