Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / определение прав доступа / 4 сообщений из 4, страница 1 из 1
02.06.2003, 16:50:51
    #32174340
BRO-m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение прав доступа
Такой вот глупый вопрос:
Как программа может определить имеет она права на запись в такую-то таблицу (права запуска такой-то процедуры) или нет до выполнения собственно запроса? Наверняка есть какие-то стандартные решения.
Программа пишется на Delphi.

Более подробно: есть две роли - одна write+read, другая только read. Разным юзверам нужны разные роли (т.е. всего 2 группы юзверов). Программа одна. Не писать же для каждого действия проверку "можно или нет записать"?
...
Рейтинг: 0 / 0
02.06.2003, 17:30:45
    #32174432
RedPank
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение прав доступа
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT Count(PRIVILEGE)
FROM sys.dba_tab_privs
WHERE OWNER = 'Имя схемы' 
  AND GRANTEE = 'Пользователь' 
  AND TABLE_NAME = 'Имя объекта'
  AND PRIVILEGE = 'SELECT'


Если 0 - нет права на SELECT
...
Рейтинг: 0 / 0
02.06.2003, 17:35:02
    #32174439
RedPank
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение прав доступа
Прочел невнимательно: Пропустил фразу Не писать же для каждого действия проверку "можно или нет записать"?

P.S.
Обрабатывай ошибку и выдавай клиенту сообщение вида "Нет прав на выполнение операции"
...
Рейтинг: 0 / 0
02.06.2003, 17:45:42
    #32174459
EthernalWonderer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определение прав доступа
Создай в каком-нибудь файле проекта запись вида

TProgOptions = Record
UserCanChangePov: Boolean;
UserCanChangeStatus: Boolean;
UserCanChangeType: Boolean;
UserCanChangeCall: Boolean;
End;

Var PO: TProgOptions;

И при старте программы запроси привилегии, как указано выше
(только мне кажется правильней использовать ALL_TAB_PRIVS).
А дальше

Query1.ReadOnly := Not PO.UserCanChangePov;
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / определение прав доступа / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]