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

Более подробно: есть две роли - одна write+read, другая только read. Разным юзверам нужны разные роли (т.е. всего 2 группы юзверов). Программа одна. Не писать же для каждого действия проверку "можно или нет записать"?
...
Рейтинг: 0 / 0
определение прав доступа
    #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
определение прав доступа
    #32174439
Фотография RedPank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочел невнимательно: Пропустил фразу Не писать же для каждого действия проверку "можно или нет записать"?

P.S.
Обрабатывай ошибку и выдавай клиенту сообщение вида "Нет прав на выполнение операции"
...
Рейтинг: 0 / 0
определение прав доступа
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / определение прав доступа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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