Модераторы: Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Требуется_помощь! I need help 
:(
    Опции темы
Lex_81
  Дата 10.10.2007, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Господа! Требуется помощь! Может конечно задаю тривиальный вопрос, но сам никак не могу догнать...

Завожу новых пользователей на сервере для удаленной работы с базой данных (FireBird) (помимо SYSDBA), а как дело доходит до соединения то пишет: "....Your User name and password are not defined...." В чем проблема  - вроде и привелегии раздал для объектов БД (<GRANT>)? Чего не так делаю? Помогите!! Очень надо!!

Если обобщить вопрос, то имелось ввиду - как подключиться к БД с именем пользователя отличным от SYSDBA?

Заранее спасибо!

Это сообщение отредактировал(а) Lex_81 - 10.10.2007, 09:22
PM MAIL   Вверх
Anark1
Дата 10.10.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Ошибок может быть очень много.
1. Как вы создаете пользователей ?
2. Используется ли механизм ролей для подключения ?
3. Каким образом на клиенте вы подключаете конкретного пользователя ?
4. пароль чувствителен к регистру.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lex_81
Дата 10.10.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Создаю в SQLHAmmer'е, можно и в gsec....
Механизм ролей не использую - пользователей всего 2! Использую оператор <GRANT>
Вроде нашел способ подключения:

Подключился к системной таблице SECURITY - и там установил для пользователей в поле PRIVILEGE значение 1 (было NULL)! Теперь вроде подключается - но возникает законный вопрос - если поле числовое то какая градация привелегий существует (от 1 до 100 например) и чему соответствует (INSERT, UPDATE, DELETe и т.д.)?

Может у кого-нить есть соображения по этому поводу?

Это сообщение отредактировал(а) Lex_81 - 10.10.2007, 09:59
PM MAIL   Вверх
Lex_81
Дата 10.10.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



....К тому же есть мнение (и не только мое) что доступ к таблице SECURITY в FireBird 2.0 закрыт!!! Как быть с этим?
PM MAIL   Вверх
Anark1
Дата 10.10.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Цитата(Lex_81 @ 10.10.2007,  09:57)
Создаю в SQLHAmmer'е, можно и в gsec....
Механизм ролей не использую - пользователей всего 2! Использую оператор <GRANT>
Вроде нашел способ подключения:

Подключился к системной таблице SECURITY - и там установил для пользователей в поле PRIVILEGE значение 1 (было NULL)! Теперь вроде подключается - но возникает законный вопрос - если поле числовое то какая градация привелегий существует (от 1 до 100 например) и чему соответствует (INSERT, UPDATE, DELETe и т.д.)?

Может у кого-нить есть соображения по этому поводу?

Теперь не понимаю смысла вопроса. Во первых, в таблице SECURITY  в ручную ничего менять не стоит, если не уверен.
Привелегии грантуются по таблицам и конкретно по полям. INSERT, UPDATE, SELECT, DELETE, REFERENCES - это виды операций над полями таблиц и EXECUTE над ХП. Насколько я знаю, нельзя разрешить user1 выполнять UPDATE над table1.field1, значение которого, допустим, больше 1000, прямыми возможностями (GRANT). Если стоит задача запретить пользователю изменять запись, id которой больше n (или любое другое условие), то я бы написал триггер на событие ON UPDATE.
А если SQLHammer не изменил таблицу SECURITY, то стоит скачать последнюю версию разве что.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lex_81
Дата 10.10.2007, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



нееет - все не так)) Может я не ясно выразился - прошу прощения! 

Само поле PRIVILEGE - из системной таблицы SECURITY (имеет целочисленный формат данных). В этом поле у вновь заведенных юзеров стоит NULL в том числе и у SYSDBA! Как только я его изменил для пользователей на 1 - все заработало, т.е. я смог соединиться с БД от имени этого пользователя с привилегиями, заданными оператором <GRANT>! 

Из SQLHammer'a я собственно все это и проделал! А вопрос теперь собственно в следущем - якобы нельзя изменять таблицу SECURITY в FireBird 2.0 (доступа нет), а если не выставить 1 для пользователей в поле PRIVILEGE в этой таблице - то и приконнектиться к БД под этим пользователем будет нельзя! (будет писать тоже самое как и в первом посте). 
Есть ли способ соединиться с БД от имени пользователя отличного от SYBASE не обращаясь к данной системной таблице? Я просто не знаю как это сделать по-другому и данный способ я нашел чисто логическим путем (может и через Ж....)! 

Что касается оператора GRANT - то с ним я устанавливал привелегии не на отдельные поля, а на объекты БД целиком!

Это сообщение отредактировал(а) Lex_81 - 12.10.2007, 09:49
PM MAIL   Вверх
Anark1
Дата 10.10.2007, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Во первых хочу сказать, что пользователи создаются на сервере. Соединение происходит с сервером. То есть для всех БД, обслуживаемых одним сервером, сохраняются одни и те же пользователи.
Во вторых. Можно соединиться с БД от имени любого пользователя, зарегистрированного на сервере. Вне зависимости от его полномочий. Оператор грант дает привелегии для работы с БД, а не серверными таблицами.
В третьих. Соединиться с Бд под другим пользователем можно. Например в C++ Builder 6 \ Delphi 8 (может и более ранние версии) существует набор компонентов - InterBase Express, в нем компонент - TIBDatabase, а в нем можно задать имя пользователя и пароль.

Добавлено через 6 минут и 15 секунд
И еще вызывает вопросы ситуация, когда пользователи создаются без возможности соединения с БД. 
Версии Firebird и SQLHammer в студию.

Это сообщение отредактировал(а) Anark1 - 10.10.2007, 20:55


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lex_81
Дата 11.10.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Епрст! Так это все понятно!

Да дело в том, что и не соединялось приложение под именами заведенных пользователей с БД, зарегистрированной на указанном сервере!
В кратце - коль уж дело так обстоит - вот поcледовательность действий:

1) создал БД и завел пользователей на сервере
2) наделил пользователей полномочиями 
(это все в Хаммере)
3) написал приложение
после попытки законектиться под именем(-ами) этого(-их) пользователя(-ей) - вылетала ошибка (1 пост)
4) прыгал вокруг сервера и пытался определить - в чем собственно дело?
(пересоздал всех пользователей из GSEC - все без изменений)
5) нашел способ следующего плана (определил косвенным путем, перелопатив ряд статей) - через тот же Хаммер подключился к системной таблице SECURITY (там хранятся все сведения о пользователях данного сервера как я понимаю в виде записей с несколькими полями, в том числе и о SYSDBA). В этой таблице присутствует поле PRIVILEGE, которое по-умолчанию - NULL для всех пользователей! И вот пока я не изменил для заведенных пользователей данное поле на "1" законнектится под их именами к своей БД я не мог!!!!

Вот я и хотел знать - почему? Может не отрабатывает это поле автоматом после создания пользователей? Может нарушена последовательность действий (хотя вряд ли)? Может косяк за сервером? Просто хотел узнать - может кто сталкивался или знает причину такой ситуации - я понимаю, она - не нормальная?

Firebird-1.5.0.4306; SQLHammer - 1.7

Это сообщение отредактировал(а) Lex_81 - 11.10.2007, 21:57
PM MAIL   Вверх
Anark1
Дата 11.10.2007, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Firebird 2.0.3
SQLHammer 1.8.0.125 (ныне BlazeTop) http://devrace.com/ru/blazetop/interbase/download/
Других причин не вижу.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Deniz
Дата 12.10.2007, 05:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Lex_81, какой-то косяк у тебя
Только что все проделал как и ты.
FireBird 1.5.3
IBExpert 2007.09.02
Создал пользователя (PRIVILEGE стоит NULL)
Подключаюсь к БД через IBExpert (есть права на чтение одной таблицы у public)
Все нормально читается


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Lex_81
Дата 12.10.2007, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Deniz! Ты, как я понимаю, подключался все-таки не из приложения, а из дизайнера БД!
Если я буду подключаться из того же Хаммера, так у меня тоже все нормально соединяется, без внесения каких-либо изменений в системную таблицу, а вот косяки как раз при подключении из-под приложения. (приложение написано в Delphi 6+стандартный набор компонентов для работы с InterBase на одноименной закладке в палитре)

Это сообщение отредактировал(а) Lex_81 - 12.10.2007, 07:43
PM MAIL   Вверх
Deniz
Дата 12.10.2007, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Lex_81, как раз не из дизайнера.
Специально создал тестовое приложение и проверил подключение (FIBPlus, IBX) все работает. Delphi 7



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Anark1
Дата 12.10.2007, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Разницы нет через что подключаться, если все настроено корректно.
Lex_81, можно посмотреть настройки подключения на клиенте ?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lex_81
Дата 12.10.2007, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Anark1, а какие там собственно настройки! (адрес сервера да путь к БД). Если удается подключиться под SYSDBA, то и под другими пользователями возможно подключение (настройки-то одни и те же)! Или ты что-то еще имеешь в виду? Я немного вопрос не понимаю.

Это сообщение отредактировал(а) Lex_81 - 12.10.2007, 09:17
PM MAIL   Вверх
Lex_81
Дата 12.10.2007, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Ладно ребят! Спасибо всем за помощь! Попробую сменить версию сервера и возможно набор компонентов для работы с InterBase.

Это сообщение отредактировал(а) Lex_81 - 12.10.2007, 09:53
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.