Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Многопользовательность в БД [D7, IB6.x]


Страницы:   1 2

Inkotex ©   (2003-05-05 19:34:00) 

Может кто подскажет как реалезовать правильно(нормально) в interbase многопользовательский доступ к БД с заданием разных уровней доступа к даным?
Спасибо


Inkotex   (2003-05-06 00:00:00) [21]

Тут мне тогда не понятен один момент
Когда я через IBConsole сделал несколько юзеров, потом в самой базе сделал несколько ролей.
Как мне сделать чтоб я задал(привязал) какому юзеру соответствует какая роль, и он только вводил свое им’я и пароль. тоесть с одного компютера можна иметь разные права доступа в зависимости от имени пользоватиля. А так я понимаю что с одного компютера(рабочего места) разные пользователи будут заходить под своим именем но под ролю котораю зашита в PARAMS даного екземпляра прогамы.
Или я опять чевото не догоняю.
Спасибо зарания.


Zacho   (2003-05-05 23:40:00) [22]


> Inkotex (05.05.03 23:25)

Именно это и правильно. Если подключаешься без указания роли - действуют права пользователя, если с указанием роли - права роли. Честно говоря не понял, в чем проблема. И плюнь на стандартый LoginPrompt, сделай свой диалог подключения к базе, с выбором (вводом) роли если надо.


Inkotex   (2003-05-05 23:25:00) [23]

Zacho ето я и делаю и типа все работает, но есть одна загвоздка с какой я не могу розобратся:
Сделал я всю базу в Interbase под пользоватилем SYSDBA
Когда я ставлю LoginPromt:=true програма відает запрос на логин тут все легко SYSDBA сделал базу он ее хозяин он имеет полный доступ. Тепер как ты описал сделал роль God со всеми правами как у SYSDBA (Grant ALL to my_table to god with admin option)
В Interbase сделал нового юзера VASYA,
Присвоил VASYA роль God Grant god to Vasya
Запускаю програму конекчусь к базе под логином VASYA выдает ошибку нет доступа типа нет прав на обзор, удаление ... и т.д
Тепер принудительно в IBDATABESE ставлю в PARAMS role_name:=God
все работает но етож не правильно. Как с каими параметрами мне конектится к базе чтоб динамически подключались изеры к существующим ролям. немогу понять к де ето задается?
\Спасибо


Zacho   (2003-05-05 23:17:00) [24]

Еще могу дать небольшой совет:
Попробуй все это проделать в IB Expert"е - там есть довольно удобные Менеджер пользователей и Менеджер прав. А потом просто извлеки метаданные базы и посмотри как это выглядит на SQL.


Zacho   (2003-05-05 23:04:00) [25]


> Inkotex (05.05.03 22:31)

А примеры есть в Data Definition Guide - довольно простые и понятные даже при слабом знании английского.
Ну вот простой пример. Предположим, есть таблица MY_TABLE. Создаем роль "SOME_ROLE": CREATE ROLE SOME_ROLE
Даем ей все права на MY_TABLE: GRANT ALL ON MY_TABLE TO SOME_ROLE
Даем пользователю "VASYA" право на эту роль: GRANT SOME_ROLE TO VASYA
После этого если пользователь VASYA подключится к БД с ролью SOME_ROLE то у него будут права на чтение, удаление, вствку и изменение данных в таблице MY_TABLE
Если не получится, напиши более подробно, что делаешь и что получаешь в результате.


Inkotex   (2003-05-05 22:31:00) [26]

Zacho большое спасибо. Правда то что ты описал в первом сообщение оно и не получается, но буду пытатся разобратся. Всеровно спасибо (может у тебя есть пример?)


Zacho   (2003-05-05 22:08:00) [27]

Еще немного добавлю. Для нормальной многопользовательской работы с БД кроме разграничения прав доступа к обьектам БД еще очень важно правильно разработать стратегию использования транзакций при конкуррентном доступе к данным. По этому вопросу читай статьи на http://www.ibase.ru/develop.htmраздел "Транзакции, архитектура IB"


Zacho   (2003-05-05 21:49:00) [28]


> Inkotex (05.05.03 20:23)

Причем здесь Дельфи ? И никакого глюка в IB нет, а если бы и был, то "средствами Delphi ето решить" просто невозможно :-) Напиши как делаешь с примером.
Кратко, схема действий такая. Создаешь роли (CREATE ROLE), даешь им нужные права на объекты БД (GRANT .. ON .. TO rolename), даешь права определенным юзерам подключаться с определенными ролями (GRANT rolename TO userlist). Читай главу "Planning Security" в Data Definition Guide (сейчас под рукой нет, так что название главы пишу по памяти, могу немного и ошибиться) - там все подробно и с примерами, и Language Reference -Chapter 2 "SQL Statement and Function Reference" про CREATE ROLE, GRANT, REVOKE и т.п. Еще посмотри статьи на http://www.ibase.ru- там тоже что-то было на эту тему.


Inkotex   (2003-05-05 20:23:00) [29]

Проблема в том что при связывании пользователя с ролями в InterBase ничего не происходит(нету доступа), может быть ето глюк Interbase? Может кто подскажет как средствами Delphi ето решить. Может кто примечик подкинет?
Спасибо


Desdechado   (2003-05-05 20:17:00) [30]

домены из другой оперы
а вот роли и просто пользователи могут иметь разные права через GRANT на доступ к таблицам, вьюхам, процедурам и пр.
читай LanguageReference


MsGuns   (2003-05-05 20:11:00) [31]

Роли, домены,..


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо