Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 "Странная" таблица  [new]
Leonid Vorontsov
Member

Откуда: Рига
Сообщений: 321
Всем привет!

Ситуация примерно следующая. Наше приложение пытается дать права пользователю - читает системный каталог (systables where tabid > 99) и даёт grant - и на одну из таблиц получает -206 (такой таблицы нет). select * from systables и dbschema показывают, что такая таблица есть, но имя её записано заглавными буквами. Честно говоря, я такое встречаю впервые - мне всегда казалось, что Informix case-insensitive, и что имена таблиц всегда хранятся в нижнем регистре. Кто-то что-то встречал подобное? Каким боком такое могло случиться? И что теперь делать? На всякий случай могу сказать название таблицы - HS_TRANSACTION. Может какое известное приложение создаёт такие чудеса...

{ TABLE "informix".HS_TRANSACTION row size = 319 number of columns = 2 index size
              = 69 }
create table "informix".HS_TRANSACTION
  (
    GLOBAL_TRAN_ID char(64) not null ,
    TRAN_COMMENT char(255),
    primary key (GLOBAL_TRAN_ID)
  )  extent size 32 next size 32 lock mode page;
revoke all on "informix".HS_TRANSACTION from "public" as "informix";
grant select on "informix".HS_TRANSACTION to "public" as "informix";
grant update on "informix".HS_TRANSACTION to "public" as "informix";
grant insert on "informix".HS_TRANSACTION to "public" as "informix";
grant delete on "informix".HS_TRANSACTION to "public" as "informix";
grant index on "informix".HS_TRANSACTION to "public" as "informix";
При попытке выполнить этот фрагмент на другой базе, всё срабатывает, как ожидалось - маленькими буквами.
17 ноя 10, 15:44    [9796055]     Ответить | Цитировать Сообщить модератору
 Re: "Странная" таблица  [new]
Журавлев Денис
Member

Откуда: St.John,NB,CA
Сообщений: 5532
абсолютно обычная, rtfm: DELIMIDENT


informix@nag:~> export DELIMIDENT=y

informix@nag:~> dbaccess test -
Database selected.
> create table "TTT" (a int);
Table created.

> grant select on TTT to public;
206: The specified table (ttt) is not in the database.
111: ISAM error: no record found.
Error in line 1
Near character position 21

> grant select on "TTT" to public;
Permission granted.


Сообщение было отредактировано: 17 ноя 10, 15:59
17 ноя 10, 15:58    [9796192]     Ответить | Цитировать Сообщить модератору
 Re: "Странная" таблица  [new]
Leonid Vorontsov
Member

Откуда: Рига
Сообщений: 321
Да, действительно - век живи...
24 ноя 10, 15:11    [9832540]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить