-
Доброго времени суток, уважаемые.
Помогите решить проблемку. Создал БД в акцесе и защитил на уровне пользователей (мастером). Соответственно для БД был создан файл рабочей группы с несколькими учетными записями юзеров.
Пытаюсь организовать для БД доступ из Delphi-приложения. По моему замыслу программа при коннекте с БД должна запрашивать у пользователя логин/пароль.
Создал системный DSN. В проекте кладу на форму ADO Connection и создаю соединение с DSN. За ADO Connection цепляю ADO Table, в свойстве TableName выбираю имя таблицы в БД. В этот момент ADO Connection соединяется БД. Успешно причем. Затем цепляю за ADO Table компонент-источник Data Source, а за него - DB Grid.
При попытке открыть ADO Table, драйвер ODBC говорит, что нет прав на чтение записей.
Как это лечить, подскажите, пожалуйста.
-
А зачем DSN? Вроде всю жизнь выбирали в качестве поставщика данных Microsoft Jet OLE DB Provider и цеплялись к mdb-ку напрямую.
-
Сделал соединение напрямую к MDB файлу посредством провайдера Microsoft Jet OLE DB Provider. Та же ерунда.
-
а пароль на базу в сделанном соединении есть?
> должна запрашивать у пользователя логин/пароль. LoginPrompt true у коннеккта и все будет запрашиваться "автоматом", только это логин/пароль на юзера. а они у тебя есть? не в смысле людей, а в смысле учётные записи в системной таблице.
-
Учетные записи есть.
Что характерно - после того, как сделал соединение посредством Microsoft Jet OLE DB Provider стала наблюдаться такая картина: если в параметрах соединения оставляю пустыми поля логин/пароль или же в поле логин стоит умолчание ('Admin') с пустым паролем, то при щелчке по кнопке "Проверить соединение", которая находится в окне построения ConnectionString вижу сообщение о том, что соединение успешно.
Если же ввожу логин и пароль учетной записи, имеющейся в файле рабочей группы, то пишет ошибку - мол база данных не существует или открыта другим пользователем в монопольном режиме. Хотя ни одно другое приложение в этот момент не испоьзует БД! Я совсем акцес закрывал в этот момент!
-
> Учетные записи есть. где? jet про это место знает? ты ему указал, они там записаны так как ему нужно?
> Что характерно - после того, как сделал ... и т.д. описана нормальная работа, и попытка ввести невалидный логин/пароль. не может прочитать права для этого юзера, а после пытается с несуществующими правами открыть коннект, в результате в доступе отказано, отсюда "монопольный" режим.
-
Я в принципе так и полагал. Только не знаю как драйверу указать на файл рабочей группы. Может подскажете где про это почитать?
-
> Только не знаю как драйверу указать на файл рабочей группы. какой рабочей группы? что это по твоему вообще такое, почему ты решил указывать именно его? ты о чем вообще? у аксесса есть системная база, в ней и задаются юзеры, ее надо указывать а не какой то мифический файл групп.
> Может подскажете где про это почитать? в хелпе jet, можно аксесса, естественно.
-
Хелп акцеса я читал. Цитирую:
"Файл рабочей группы. Файл, который Microsoft Access читает при запуске, содержащий сведения о пользователях, входящих в рабочую группу. Эти сведения включают имена учетных записей пользователей, их пароли и имена групп, в которые входят пользователи.), в котором каждый пользователь идентифицируется уникальным кодом. Уровень доступа и объекты, доступ к которым получает пользователь, зависят от кода и пароля."
Это к вопросу о "мифическом" файле. Где найти хелп jet?
P.S. Позволю себе немного офтопа. Я понимаю, что Вас раздражает необходимость отвечать на нубские вопросы, однако разве это в конце концов не задача этого форума?
-
> wardoc (04.10.2008 19:01:08) [8]
Нет, это не задача форума.
-
Очень жаль. Очевидно, что я зря задавал здесь свой вопрос.
-
> Цитирую: > "Файл рабочей группы. ... это, что называется "удачный" перевод... назвать файл "System" рабочей группой, надо же. ну так, ещё раз, раз уж выяснили что это то самое, ты его указал в подключении? и пользователи в нем есть, и они для твоей базы?
> Я понимаю, что Вас раздражает необходимость нет, меня раздражает не необходимость, это работа необходимость, а тут нет, меня раздражает когда говорят на "псевдосленге", "местечковом сленге", используют "умные" слова, и другие способы внесения недопонимания. когда вроде бы и спрашивают, а чего хотят не понятно... все у него зашибись, все есть, все указано, а не работает. неужели нельзя попонятнее, не высоким "штилем", а просто пальцем ткнуть, типа "да я создал файл в аксессе, с именем ..., положил, подключил... туда и так" и т.д. нет вместо этого > Учетные записи есть. и понимай как хочешь... умно, красиво, но нифига не информативно. как будто это не вам надо. не вы а я тут вопросы задаю...
> я зря задавал здесь свой вопрос. это верно, но с другой стороны, партизаны нигде не приветствуются. если только в платной службе поддержки, с повременной оплатой... чем дольше тем лучше.
-
Не хотел разводить флейм, но раз уж дошло до подобного наезда, то должен сказать:
1. Я работал в службе поддержки. 2 года. Насчет "партизанов" вы безусловно правы, но людям, которые задавали мне вопросы я не отвечал так как вы.
2. По поводу сленга. Извините, какие термины прочел, теми и пользуюсь, других не знаю.
3. По существу. Нет я не указывал файл System в подключении, ибо если бы знал как это делать то зачем мне ваши ответы?
-
> Не хотел разводить флейм не разводи! пусть останется густым... :)
> но людям, которые задавали мне вопросы я не отвечал так как вы. ну так тебе за ответы наверное деньги платили? т.к. служба поддержки. а здесь не служба поддержки, здесь общение, на равных, ради интереса. если не интересен, общение прекращается.
> 3. По существу. Нет я не указывал файл System в подключении это не по существу, это очередная отмазка. из 5-6 доп вопросов ответ только на один... я же ещё спрашивал, он у тебя вообще есть, как делал, там есть пользователи, и т.д. ПОЛНУЮ картину в общем. а то ты может его в блокноте состряпал, несмотря на то что хелп из акцесса как его делать привел. не ту часть, но близко.
> ибо если бы знал как это делать а как ты делал строку подключения? мастером, там же, ещё это в параметрах прописать, и все (с прописыванием, но не все с остальным).
> то зачем мне ваши ответы? оно и видно, незачем.
|