Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2009, 12:45   #1
Zo0M
Пользователь
 
Регистрация: 09.07.2009
Сообщений: 42
Сообщение MSSQL+Delphi. Пользователи базы данных.

Интересуют именно идеи. Код как-нить сам напишу.

Программа работает с базой данных, скажем - MSSQL Т.к количество пользователей программы достаточно велико(200-300) и у всех одинаковые привилегии, идея сделать в базе данных соответствующее количество пользователей не ась. Я создал в базе данных таблицу(скажем tab1) и в ней графы "Ф,И,О,Логин,Пароль".
Для базы данных сделал двух пользователей. Админ и Юзер.
Если пользователь хочет войти, вначале программа сама коннектится по пользователю Юзер, а затем вылезает окошко, где пользователь вводит свой логин/пароль из таблицы tab1.

Как настроить привилегии пользователю Юзер и таблицы tab1, чтобы программа сличала его введённые логин/пароль с логин/пароль из таблицы tab1, но при этом пользователь вручную не мог зайти в базу данных (он ведь знает логин/пароль пользователя Юзер) и посмотреть все логин/пароли в таблице tab1?
Zo0M вне форума Ответить с цитированием
Старый 09.10.2009, 12:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А разве в MS SQL Enterprise Manager нельзя настроить для каждой таблицы пользователей административно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2009, 13:42   #3
Zo0M
Пользователь
 
Регистрация: 09.07.2009
Сообщений: 42
По умолчанию

Можно конечно, вопрос как?
Можно даже это сделать для определённых полей.
Вопрос - как?

Если я сделаю доступ read-only, то можно будет посмотреть, что в них значится, а если сделать not read, то как сверять те логин/пароль которые он ввёл, с теми которые будут в таблице, если таблицу прочитать невозможно?

Возможно существуют какие-либо SQL запросы для того, чтобы сверять значения которые я отправляю с теми, которые существуют в таблице, для которых не нужен доступ read. Как это может быть - понятия не имею.

Последний раз редактировалось Zo0M; 09.10.2009 в 13:44.
Zo0M вне форума Ответить с цитированием
Старый 09.10.2009, 13:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
то как сверять те логин/пароль которые он ввёл, с теми которые будут в таблице, если таблицу прочитать невозможно?
Причем тут сверка?
Твоя программа вообще не должна содержать механизм проверки паролей. Она должна при коннекте к БД отослать СУБДшке пароль и пользователя, а уж сама СУБД должна знать к каким БД можно достучаться по аккаунту.

Все это должно настраиваться непосредственно администратором БД, а не программой твоей.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2009, 14:23   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

2 Zo0M
почитай про роли
soleil@mmc вне форума Ответить с цитированием
Старый 09.10.2009, 14:55   #6
Zo0M
Пользователь
 
Регистрация: 09.07.2009
Сообщений: 42
По умолчанию

Не то. Я говорю, что пользователя у базы данных - 2:
Юзер и Админ.

Программа коннектится к базе данных через логин/пароль Юзера. Их у пользователя не спрашивают даже.

Зато у каждого пользователя есть своя пара логин/пароль, которые записаны в tab1.

И вот как сверять то, что ввёл пользователь программы с тем, что написано в tab1?
Да и так, чтобы если он захотел заглянуть в таблицу tab1 (не через мою программу), то ничего там не увидел?
Zo0M вне форума Ответить с цитированием
Старый 09.10.2009, 15:48   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

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

еще раз - почитайте про роли
кратко:
1) создаете роли и раздаете права доступа на роли
2) создаете юзверей со своими логин/пасс
3) раздаете роли юзверям в соответствии с выполняемыми задачами

все что вы там напридумывали проверять умеет делать сама субд

другой вопрос: зачем вы используете одну единственную пару логин/пасс? видимо, по незнанию

Последний раз редактировалось soleil@mmc; 09.10.2009 в 15:53.
soleil@mmc вне форума Ответить с цитированием
Старый 11.10.2009, 19:07   #8
Zo0M
Пользователь
 
Регистрация: 09.07.2009
Сообщений: 42
По умолчанию

Я просто не буду иметь доступ к этой бд, где должна эта штука работать. Администрировать её я точно не буду. Там на сервере несколько баз данных у них тоже не мало пользователей, и я думаю, что фиг мне кто разрешит создать 200-300 аккаунтов для БД. Поэтому ищу, как сделать это минимализировано... Видимо не выйдет...

Кстати вообще не факт, что там будет MSSQL...

Ладно, спасибо за ответы
Zo0M вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужна книга базы данных Delphi 7 stscolt Помощь студентам 1 27.07.2009 19:03
Многотабличные запросы! (модификация данных). MSSQL +Delphi MoGiLsHiKK БД в Delphi 1 25.12.2007 16:21