JDBC, Tomcat: Подключиться к базе с ролью

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Erhe
Сообщения: 30
Зарегистрирован: 26 сен 2006, 09:48

JDBC, Tomcat: Подключиться к базе с ролью

Сообщение Erhe » 03 июл 2014, 08:30

Здравствуйте.

Использую для подключения jaybird-full-2.1.6.jar.

Хочу настроить подключение к базе с ролью. Если прописываю ресурс в context.xml Tomcat'а следующим образом:

Код: Выделить всё

<Resource driverClassName="org.firebirdsql.jdbc.FBDriver" maxActive="7"
        maxIdle="2" maxWait="50000" name="jdbc/dbase" password="myPassword"
        type="javax.sql.DataSource" 
        url='jdbc:firebirdsql://myserver/d:/dbase/dbase.fdb?lc_ctype=WIN1251'
        username="MYUSER"</Resource>
Всё прекрасно работает. Но хочется подключаться с ролью. Пробовал комбинировать url

Код: Выделить всё

url='jdbc:firebirdsql://myserver/d:/dbase/dbase.fdb?sql_role_name="MY_ROLE"&lc_ctype=WIN1251'
или

Код: Выделить всё

url='jdbc:firebirdsql://myserver/d:/dbase/dbase.fdb?lc_ctype=WIN1251'
        roleName="MY_ROLE">
Подключение происходит, но доступа к таблицам нет -- пишет, что у меня нет прав. Такое ощущение, что драйвер игнорирует параметр роли. Подскажите, пжлста, как правильно настроить?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: JDBC, Tomcat: Подключиться к базе с ролью

Сообщение kdv » 03 июл 2014, 14:14

а пользователь MYUSER включен в роль? к примеру, то же самое, но через IBExpert проверяли?

Erhe
Сообщения: 30
Зарегистрирован: 26 сен 2006, 09:48

Re: JDBC, Tomcat: Подключиться к базе с ролью

Сообщение Erhe » 03 июл 2014, 14:40

kdv писал(а):а пользователь MYUSER включен в роль? к примеру, то же самое, но через IBExpert проверяли?
Да, подключился к базе через IBExpert с этими параметрами логин/пароль/роль. Открылось, и запрос к таблице прекрасно прошел. Через драйвер не хочет :( Я, конечно, могу скачать последнюю версию jdbc драйвера, мне не принципиально, но не уверен, что там этот баг пофиксен (ну или устранена сия фича :) )

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: JDBC, Tomcat: Подключиться к базе с ролью

Сообщение kdv » 03 июл 2014, 15:22

с JayBird работает мало людей (относительно остальных методов доступа), так что, кроме совета обновить драйвер или прочитать по нему документацию внимательнее вы вряд ли что получите :-)
кстати, а разве не так должно быть?
?lc_ctype=WIN1251'&username="MYUSER"

name-value pairs separated with “&”
т.е. я не вижу требования разделять параметры точкой с запятой.

Erhe
Сообщения: 30
Зарегистрирован: 26 сен 2006, 09:48

Re: JDBC, Tomcat: Подключиться к базе с ролью

Сообщение Erhe » 03 июл 2014, 15:32

kdv писал(а):с JayBird работает мало людей (относительно остальных методов доступа), так что, кроме совета обновить драйвер или прочитать по нему документацию внимательнее вы вряд ли что получите :-)
Документацию я читал, но в ней даже про кодировку в виде "?lc_ctype..." нет. Я это на просторах интернета находил. Драйвер обновлю.

А как же народ к Firebird из Java цепляется? Или только на Delphi и C#, а Java для других серверов баз данных?
kdv писал(а):кстати, а разве не так должно быть?
?lc_ctype=WIN1251'&username="MYUSER"

name-value pairs separated with “&”
т.е. я не вижу требования разделять параметры точкой с запятой.
Там собственно не просто "&", а XML-ный амперсанд "&". Иначе у меня Томкат даже не стартует, говорит, что файл конфигурации поврежден.

Попробую обновить драйвер, да поиграться с местоположением параметров в url, но надежды мало. Видимо придется давать права именно пользователю, без всякой группы.

Erhe
Сообщения: 30
Зарегистрирован: 26 сен 2006, 09:48

Re: JDBC, Tomcat: Подключиться к базе с ролью

Сообщение Erhe » 03 июл 2014, 15:52

Erhe писал(а):Попробую обновить драйвер, да поиграться с местоположением параметров в url, но надежды мало. Видимо придется давать права именно пользователю, без всякой группы.
Обновил драйвер (сейчас, ради истины попробую на старом) и поменял порядок аргументов в url. Заработало с таким хвостом:

url='...?lc_ctype=WIN1251&sql_role_name="MY_ROLE"'.

ЗЫЖ На старом тоже заработало. Оказывается, важен порядок аргументов. А если выносить в атрибуты, как username или password, то подключается, но доступа не дает.

Ответить