Oracle, привилегии.
Ролями это делается.
То есть то же самое,что отдельными грантами делать.
Как у тебя возник пользователь с 1000 таблиц, и без каких-либо ролей?
![](/images/graemlins/smile.gif)
Еще вариант блок написать.
Select t.table_name
From all_tables t
Where t.owner = &psUserName
ps: &psUserName - имя пользователя
А перечислить 1000 таблиц - это легко. Прогони в sqlplus скрипт, приведённый ниже, пользователем B (предварительно role_name замени на имя пользователя A, которому нужно дать права).
set pagesize 0 feedback off verify off heading off echo off suffix "" sqlprompt ""
spool generated.sql
SELECT 'grant select on '||table_name||' to role_name;'
FROM USER_TABLES
ORDER BY table_name;
SELECT 'exit;' FROM dual;
spool off;
@generated.sql
exit;
P.S. Скрипт не проверял
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
Решение для Oracle 8i, возможно в новых версиях можно и по-другому (тоже интересно)
Конечно, можно одним запросом дать права, но при создании новой таблицы их ведь не будет.
А так, не нужно ни за чем следить, да и ресурсы не затрачиваются на это. Вполне нормальное решение.
Спасиб за решение,такое я и сам догадался,просот интересно было,можно ли как нибудь одним грантов все это сделать =)
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
триггер при создании таблицы даст права на неё.
никто и не спорит,нельзя,я имею ввиду,что если все таблицы давно созданы и функционируют и тут я решил создать юзер с правом доступа к таблицам =)
![](/images/graemlins/grin.gif)
Оставить комментарий
wwoland
Вопрос,можно ли как нибудь дать некоторому пользователю A привилению вибирать данные из любой таблицы другого пользователя B.Вариант для каждой таблицы отдельно разрешать выборку не считается =)?