Конференция "Базы" » Доступ к защищенной БД с помощью компонентов ADO [D7, Access]
 
  • wardoc (04.10.08 05:46) [0]
    Доброго времени суток, уважаемые.

    Помогите решить проблемку. Создал БД в акцесе и защитил на уровне пользователей (мастером). Соответственно для БД был создан файл рабочей группы с несколькими учетными записями юзеров.

    Пытаюсь организовать для БД доступ из Delphi-приложения. По моему замыслу программа при коннекте с БД должна запрашивать у пользователя логин/пароль.

    Создал системный DSN. В проекте кладу на форму ADO Connection и создаю соединение с DSN. За ADO Connection цепляю ADO Table, в свойстве TableName выбираю имя таблицы в БД. В этот момент ADO Connection соединяется БД. Успешно причем. Затем цепляю за ADO Table компонент-источник Data Source, а за него - DB Grid.

    При попытке открыть ADO Table, драйвер ODBC говорит, что нет прав на чтение записей.

    Как это лечить, подскажите, пожалуйста.
  • YurikGL © (04.10.08 09:11) [1]
    А зачем DSN? Вроде всю жизнь выбирали в качестве поставщика данных Microsoft Jet OLE DB Provider и цеплялись к mdb-ку напрямую.
  • wardoc (04.10.08 13:37) [2]
    Сделал соединение напрямую к MDB файлу посредством провайдера Microsoft Jet OLE DB Provider. Та же ерунда.
  • sniknik © (04.10.08 14:50) [3]
    а пароль на базу в сделанном соединении есть?

    > должна запрашивать у пользователя логин/пароль.
    LoginPrompt true у коннеккта и все будет запрашиваться "автоматом", только это логин/пароль на юзера. а они у тебя есть? не в смысле людей, а в смысле учётные записи в системной таблице.
  • wardoc (04.10.08 15:20) [4]
    Учетные записи есть.

    Что характерно - после того, как сделал соединение посредством Microsoft Jet OLE DB Provider стала наблюдаться такая картина: если в параметрах соединения оставляю пустыми поля логин/пароль или же в поле логин стоит умолчание ('Admin') с пустым паролем, то при щелчке по кнопке "Проверить соединение", которая находится в окне построения ConnectionString вижу сообщение о том, что соединение успешно.

    Если же ввожу логин и пароль учетной записи, имеющейся в файле рабочей группы, то пишет ошибку - мол база данных не существует или открыта другим пользователем в монопольном режиме. Хотя ни одно другое приложение в этот момент не испоьзует БД! Я совсем акцес закрывал в этот момент!
  • sniknik © (04.10.08 16:46) [5]
    > Учетные записи есть.
    где? jet про это место знает? ты ему указал, они там записаны так как ему нужно?

    > Что характерно - после того, как сделал ... и т.д.
    описана нормальная работа, и попытка ввести невалидный логин/пароль. не может прочитать права для этого юзера, а после пытается с несуществующими правами открыть коннект, в результате в доступе отказано, отсюда "монопольный" режим.
  • wardoc (04.10.08 17:09) [6]
    Я в принципе так и полагал. Только не знаю как драйверу указать на файл рабочей группы. Может подскажете где про это почитать?
  • sniknik © (04.10.08 18:23) [7]
    > Только не знаю как драйверу указать на файл рабочей группы.
    какой рабочей группы? что это по твоему вообще такое, почему ты решил указывать именно его? ты о чем вообще?
    у аксесса есть системная база, в ней и задаются юзеры, ее надо указывать а не какой то мифический файл групп.

    > Может подскажете где про это почитать?
    в хелпе jet, можно аксесса, естественно.
  • wardoc (04.10.08 19:01) [8]
    Хелп акцеса я читал. Цитирую:

    "Файл рабочей группы. Файл, который Microsoft Access читает при запуске, содержащий сведения о пользователях, входящих в рабочую группу. Эти сведения включают имена учетных записей пользователей, их пароли и имена групп, в которые входят пользователи.), в котором каждый пользователь идентифицируется уникальным кодом. Уровень доступа и объекты, доступ к которым получает пользователь, зависят от кода и пароля."

    Это к вопросу о "мифическом" файле. Где найти хелп jet?

    P.S. Позволю себе немного офтопа. Я понимаю, что Вас раздражает необходимость отвечать на нубские вопросы, однако разве это в конце концов не задача этого форума?
  • Anatoly Podgoretsky © (04.10.08 19:25) [9]
    > wardoc  (04.10.2008 19:01:08)  [8]

    Нет, это не задача форума.
  • wardoc (04.10.08 19:41) [10]
    Очень жаль. Очевидно, что я зря задавал здесь свой вопрос.
  • sniknik © (04.10.08 20:07) [11]
    > Цитирую:
    > "Файл рабочей группы. ...
    это, что называется "удачный"  перевод... назвать файл "System" рабочей группой, надо же.
    ну так, ещё раз, раз уж выяснили что это то самое, ты его указал в подключении? и пользователи в нем есть, и они для твоей базы?

    > Я понимаю, что Вас раздражает необходимость
    нет, меня раздражает не необходимость, это работа необходимость, а тут нет, меня раздражает когда говорят на "псевдосленге", "местечковом сленге", используют "умные" слова, и другие способы внесения недопонимания.
    когда вроде бы и спрашивают, а чего хотят не понятно... все у него зашибись, все есть, все указано, а не работает.
    неужели нельзя попонятнее, не высоким "штилем", а просто пальцем ткнуть, типа "да я создал файл в аксессе, с именем ..., положил, подключил... туда и так" и т.д.
    нет вместо этого
    > Учетные записи есть.
    и понимай как хочешь... умно, красиво, но нифига не информативно. как будто это не вам надо. не вы а я тут вопросы задаю...

    > я зря задавал здесь свой вопрос.
    это верно, но с другой стороны, партизаны нигде не приветствуются. если только в платной службе поддержки, с повременной оплатой... чем дольше тем лучше.
  • wardoc (04.10.08 20:21) [12]
    Не хотел разводить флейм, но раз уж дошло до подобного наезда, то должен сказать:

    1. Я работал в службе поддержки. 2 года. Насчет "партизанов" вы безусловно правы, но людям, которые задавали мне вопросы я не отвечал так как вы.

    2. По поводу сленга. Извините, какие термины прочел, теми и пользуюсь, других не знаю.

    3. По существу. Нет я не указывал файл System в подключении, ибо если бы знал как это делать то зачем мне ваши ответы?
  • sniknik © (04.10.08 21:56) [13]
    > Не хотел разводить флейм
    не разводи! пусть останется густым... :)

    > но людям, которые задавали мне вопросы я не отвечал так как вы.
    ну так тебе за ответы наверное деньги платили? т.к. служба поддержки.
    а здесь не служба поддержки, здесь общение, на равных, ради интереса. если не интересен, общение прекращается.

    > 3. По существу. Нет я не указывал файл System в подключении
    это не по существу, это очередная отмазка. из 5-6 доп вопросов ответ только на один...
    я же ещё спрашивал, он у тебя вообще есть, как делал, там есть пользователи, и т.д. ПОЛНУЮ картину в общем. а то ты может его в блокноте состряпал, несмотря на то что хелп из акцесса как его делать привел. не ту часть, но близко.

    > ибо если бы знал как это делать
    а как ты делал строку подключения? мастером, там же, ещё это в параметрах прописать, и все (с прописыванием, но не все с остальным).

    > то зачем мне ваши ответы?
    оно и видно, незачем.
 
Конференция "Базы" » Доступ к защищенной БД с помощью компонентов ADO [D7, Access]
Есть новые Нет новых   [134473   +28][b:0][p:0]