![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как реализовать "права пользователя" в своей программе? (БД)
Gusev © (2008-01-22 13:23:00)Написал простую БД: Delphi + Access...
Пароль на вход, три таблицы, экспорт в Excel... Думал, что в остальном проблем не будет. Но тут меня попросили "разделить" эти три таблицы в Access на трёх разных пользователей! Т.е. чтобы каждый мог работать, редактировать данные только своей!
Как это сделать? - Запуск с ключом, четвёртая таблица (пользователь-пароль),...
Посоветуйте лучшее решение!
Sergey13 (2008-01-22 16:39:00) [1]> [4] Gusev (22.01.08 15:53)
> - 3 пользователя = 3 таблицы
Это самый тупиковый тупик без выхода. Ни в коем случае!
Если в твоей БД существуют две (или более) таблиц с одинаковой структурой, это как правило недоработка проектирования и следует оставить 1 таблицу и добавить в нее поле- признак отличия одних записей от других.
Gusev (2008-01-22 16:30:00) [2]> В данной ситуации выбор Access несколько странен.
Возьми хотя бы MSDE (бесплатный усечённый MSSQL Server)
1. Пользователи будут вносить свои данные поочерёдно (чаще всего), так что зачем мощная БД?
2. Мы не админы... и тем более просить что-то устаналвивать, настраивать....
3. Я читал, что по сети одновременно с Access в сети могут работать (носрмально) до 14 пользхователей.
> не надо "самопала", практически везде есть юзеры, и у них есть права, сделай 4-ре "учетки" 1 админсскую на все
И как "считать" эти учётные записи в Delphi? У меня нормальная готовая оболочка (которая всех устраивает), использующая Access, как хранилище.
Плюс я беспокоюсь, если пользователь поменяется (пр.: Иванов --> Сидоров), или добавится новый! Если бы мы связали учётные записи с таблицами, то было бы достаточно просто создать новую в Access, или переименовать заголовок!
sniknik (2008-01-22 16:18:00) [3]> но как пароль привязать к таблице?
не надо "самопала", практически везде есть юзеры, и у них есть права, сделай 4-ре "учетки" 1 админсскую на все, и 3 с правами только на одну таблицу и все. под какой задет на то права и будут.
Ega23 (2008-01-22 15:55:00) [4]
> > 3 человека (по сети наверняка)
> именно так!
В данной ситуации выбор Access несколько странен.
Возьми хотя бы MSDE (бесплатный усечённый MSSQL Server)
Gusev (2008-01-22 15:53:00) [5]> 3 человека (по сети наверняка)
именно так!
> А так - добавь идентификатор пользователя в таблицы с данными и учитывай это поле при запросах...
Мне кажется, что решение будет простым... Но как соединить всё воедино!?!? Ведь, смотрите:
- 3 пользователя = 3 таблицы (т.е. не плохо было связать логин и таблицу), ну разьве что администратору оставить доступ ко всем)... но как пароль привязать к таблице?
sniknik (2008-01-22 15:34:00) [6]> Получишь встроенную возможность заводить пользователей и раздавать им права.
такая возможность в аксесс тоже есть. т.е. если только ради этого то не стоит менять.
вот изза того что работает 3 человека (по сети наверняка), а используется база локального типа... вот это уже причина посерьезнее (стоит сменить).
если же они на одной машине по очереди работают, то фигня, можно и в аксессе пользователей завести, и раздать им права.
Sergey13 (2008-01-22 14:25:00) [7]> [0] Gusev (22.01.08 13:23)
Переделай БД например на FireBird или еще какой серверок. Получишь встроенную возможность заводить пользователей и раздавать им права.
А так - добавь идентификатор пользователя в таблицы с данными и учитывай это поле при запросах.
fics (2008-01-22 13:57:00) [8]Зачем тебе таблица всего из трех пользователей?