Модераторы: Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно обработать отсутствие прав? 
:(
    Опции темы
WaReZMEN
Дата 7.10.2008, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Как правельно обработать отсутствие прав на процедуру?
Тоесть у меня  в БL FIB есть процедура у пользователя или роли нет на нее прав. Мне нужно чтоб когда пользователь в дельфи попытался выполнить эту процедуру выскачело окошко "Нет  прав" ну что то в этом роде...
P.S. Try except не предлогать.
PM MAIL ICQ   Вверх
Deniz
Дата 8.10.2008, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(WaReZMEN @  7.10.2008,  21:21 Найти цитируемый пост)
P.S. Try except не предлогать. 
почему?
Посмотри в FIB есть ErrorHandler может там есть обработка прав.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
WaReZMEN
Дата 8.10.2008, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Deniz, чесно говоря хочется знать о отсутсвие прав до того как попытаешся выполнить процедуру а не после этого
PM MAIL ICQ   Вверх
Deniz
Дата 8.10.2008, 07:54 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



WaReZMEN, примерно вот так:
Код
select *
from rdb$user_privileges p
where (p.rdb$user in ('имя пользователя', 'PUBLIC'))
  and (p.rdb$relation_name = 'имя процедуры')
  and (p.rdb$object_type = 5) -- 5 это хранимая процедура
там поля посмотришь и выберешь что надо (rdb$privilege), хотя для процедур достаточно того, что запись в табличке существует.

Это сообщение отредактировал(а) Deniz - 8.10.2008, 07:57


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
WaReZMEN
Дата 8.10.2008, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Deniz, Это все я сно но мне тонужно в дельфи все этоопределять и не хочется каждый раз название процедур писать да и кучу одинаковых блоков.
PM MAIL ICQ   Вверх
Deniz
Дата 8.10.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



WaReZMEN, тогда расскажи как это должно выглядеть.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
WaReZMEN
Дата 8.10.2008, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Deniz, еслиб я знал smile Ну скажем есть кнопка мы жмем на нее и както проверяется есть ли прова на выполнение процедуры или нет smile
PM MAIL ICQ   Вверх
Deniz
Дата 8.10.2008, 15:33 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(WaReZMEN @  8.10.2008,  14:17 Найти цитируемый пост)
и не хочется каждый раз название процедур писать да и кучу одинаковых блоков. 
и как же будет проверяться без указания имени процедуры?
Если я правильно понял нужно сделать одну большую кнопку и написать на ней "Сделать пи@#$то".
PS: все ответы даны, сюда я больше не ездюк.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akella
Дата 8.10.2008, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(WaReZMEN @  8.10.2008,  11:17 Найти цитируемый пост)
Это все я сно но мне тонужно в дельфи

так сделай в дельфи, тебе ж даже SQL готовый код дали  smile

Добавлено через 37 секунд
Цитата(WaReZMEN @  8.10.2008,  11:17 Найти цитируемый пост)
Это все я сно 

извини, конечно, но, по-моему, тебе ничего не ясно ((

Добавлено через 1 минуту и 29 секунд
Цитата(WaReZMEN @  8.10.2008,  11:17 Найти цитируемый пост)
не хочется каждый раз название процедур писать да и кучу одинаковых блоков. 

никто не заставляет тебя писать кучу одинаковых блоков, реализуй решение так, что такого НЕ ДЕЛАТЬ

Добавлено через 1 минуту и 52 секунды
Цитата(Deniz @  8.10.2008,  15:33 Найти цитируемый пост)
Если я правильно понял нужно сделать одну большую кнопку и написать на ней "Сделать пи@#$то".
PS: все ответы даны, сюда я больше не ездюк.

 smile 
PM MAIL   Вверх
WaReZMEN
Дата 8.10.2008, 19:39 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Я наверное не верно выразился smile Есть датасет с тремя процедурами Select Insert и Delite Ну и таких датасетов навалом. Вы предлагаетет в поисках имяни процедуры парсить SQLText? Или для каждого деиствия прописывать в коде процедуру? Тоесть кнопка удалить процедура "Del_Order" ну и естественно  есть еще select_order и insert_order...



Akella, Лучшеб объяснили что к чему чем посты капировать и смайлы пихать...
PM MAIL ICQ   Вверх
jsa
Дата 9.10.2008, 05:04 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 1
Всего: 20



WaReZMEN, скорее всего, имхо, тебе требуется разграничение прав на уровне приложения, а не на уровне базы, если так, тогда возможно придется немного поработать над идеологией самого приложения, а именно:
1 составь список возможных действий в приложении - но не типа там выполнение отдельно взятой процедуры, а именно логически самостоятельных - т.е., например, действие по изменению данных конкретного объекта(кстати может включать в себя выполнение нескольких процедур из базы)
2 определить модель прав на возможные действия и систему раздачи этих прав пользователям, возможно также подумать над роля - комплексами прав для пользователя
3 смоделить единую точку доступа - однозначная аутентификация и авторизация пользователя с последующими проверками возможных операций в приложении

надеюсь понятно объяснил? сложно? - может быть, зато если реализовать - очень много гемора можно будет избежать в дальнейшем

ЗЫЖ это только мое имхо, я бы именно так и сделал


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
WaReZMEN
Дата 9.10.2008, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



jsa, Спасибо smile Учту.
PM MAIL ICQ   Вверх
Akella
Дата 9.10.2008, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(WaReZMEN @  8.10.2008,  19:39 Найти цитируемый пост)
Akella, Лучшеб объяснили что к чему чем посты капировать и смайлы пихать... 

в твоём случае простым объяснением ничего не сделаешь, как я понял тебе код готовый нужен?

но я бы воспользовался спец. компонентоы фибовской или try except end

Почему не устраивает try except end, может рассказать?
PM MAIL   Вверх
WaReZMEN
Дата 9.10.2008, 18:31 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Цитата(Akella @  9.10.2008,  20:47 Найти цитируемый пост)
Почему не устраивает try except end, может рассказать?


Потому как у меня сейчас именно так сделано smile
А вот про компоненту фибовскую хотель поподробнеи что там и как.
PM MAIL ICQ   Вверх
Akella
Дата 9.10.2008, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(WaReZMEN @  9.10.2008,  18:31 Найти цитируемый пост)
А вот про компоненту фибовскую хотель поподробнеи что там и как. 

и.....
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.