![]() |
|
|
![]()
|
|
| santilaas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 322 Регистрация: 28.8.2005 Где: Блага Репутация: нет Всего: нет |
Привет всем!
1) Имеется БД (Firebird 1.5.1), в клиентском приложении на форме подключения клиент должен указать (выбрать из списка) роль. Вопрос: как до подключения к БД заполнить этот выпадающий список всеми реально имеющимися в БД ролями (притом на русском языке). Первая мысль приходящая в голову - создать какой-нибудь ini или текстовый файл, где построчно писать через разделитель название роли и её английский эквивалент. Может у кого-нибудь будут другие мысли на сей счет.? 2) Может кто-нибудь знает, как при подключении к БД (на форме указывается логин, пароль и из списка выбирается роль) проверять назначена ли данному пользователю данная роль. Притом, как я думаю - до фактического подключения к БД проверить это нельзя. Но тогда, получается любой пользователь может зайти скажем под ролью "Администратор" - и хоть он ничего не сможет изменить, но сам факт остается фактом - подключится он с ролью администратор?! - а если у меня в зависимости от выбранной роли устанавливается определенный интерфейс?!. В общем я делаю так - сразу после подключения к БД под опред. логином и паролем выполняется такой код:
- но при таком раскладе - я сначала подключаюсь, затем проверяю роль, - если пользователю не дана данная роль, тогда отключаемся от БД, иначе снова подключаемся. Но что-то мне не нравится - базу постоянно дергать. Кто, что посоветует, расскажет или свой код приведет??? 3) Другими словами намутили в Firebird-е c ролями - рад буду, если ошибаюсь - но трудности остаются Заранее благодарен. -------------------- [ |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
У меня в проекте сделано так:
1) Пользователь по умолчанию подключается под стандартной ролью "SimpleUser" 2) После этого из базы считывается присвоенная ему роль, и происходит переподключение уже с ролью присвоенной ему. Как вариант могу посоветовать сделать аналогично: 1) сначала подключить пользователя со стандартной ролью. Может быть даже сделать какого-нибудь стандартного пользователя, который будет иметь право только просматривать список ролей, и считывать этот список ещё до показа диалога Login. 2) Когда пользователь введёт свой логин, заполнить список доступных ему ролей. 3) Подключить пользователя с присвоенной ему/выбранной им ролью. А вообще у меня в проекте реализован свой механизм ролей, который дополняет/извращает стандартные роли Firebirda. В основу положен такой принцип: каждый пользователь может иметь несколько ролей(!). Соответственно, в базе есть таблица где прописано какие роли какому пользователю присвоены. Ну а собственно сам контроль, что можно и что нельзя реализован в приложении и в процедурах базы данных. Но у этого подхода есть один абсолютный минус: он черезвычайно негибкий. Совет на тему подключения. Лично мне кажутся неудобными программы которые не показывают главную форму, пока не залогинишься. Минус в том, что нельзя посмотреть Help, нельзя посмотреть версию программы(!), которая как правило видна в окне About. Ну и сложно вообще понять что за программу ты запустил. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |