"пользователь" не владелец БД и не владелец "таблицы" и он может изменить "тип" поля. это БАГ?!
изменение типа поля в 2.1.1
Re: изменение типа поля в 2.1.1
При чём тут владелец БД? Владелец не имеет никаких не выданных ему прав.
А вот "не владелец таблицы", и не сисдба (и не RDB$ADMIN) не имеют права менять тип поля.
Напиши подробнее.
А вот "не владелец таблицы", и не сисдба (и не RDB$ADMIN) не имеют права менять тип поля.
Напиши подробнее.
Re: изменение типа поля в 2.1.1
пользователи БД user_1 и user_2
user_1 "сделал" таблицу TABLE_1.
CREATE DOMAIN DOMAIN_11 AS VARCHAR(100) CHARACTER SET NONE COLLATE NONE;
CREATE DOMAIN DOMAIN_22 AS VARCHAR(200) CHARACTER SET NONE COLLATE NONE;
CREATE TABLE TABLE_1 ( RECID INTEGER NOT NULL, FIELD_1 DOMAIN_11);
ALTER TABLE TABLE_1 ADD CONSTRAINT PK_TABLE_1 PRIMARY KEY (RECID);
user_2
alter table TABLE_1 alter column FIELD_1 type DOMAIN_22;
ОШИБКА!!
update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'DOMAIN_22' where (RDB$FIELD_NAME = 'FIELD_1') and (RDB$RELATION_NAME = 'TABLE_1');
ОШИБКИ НЕТ!!
user_1 "сделал" таблицу TABLE_1.
CREATE DOMAIN DOMAIN_11 AS VARCHAR(100) CHARACTER SET NONE COLLATE NONE;
CREATE DOMAIN DOMAIN_22 AS VARCHAR(200) CHARACTER SET NONE COLLATE NONE;
CREATE TABLE TABLE_1 ( RECID INTEGER NOT NULL, FIELD_1 DOMAIN_11);
ALTER TABLE TABLE_1 ADD CONSTRAINT PK_TABLE_1 PRIMARY KEY (RECID);
user_2
alter table TABLE_1 alter column FIELD_1 type DOMAIN_22;
ОШИБКА!!
update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'DOMAIN_22' where (RDB$FIELD_NAME = 'FIELD_1') and (RDB$RELATION_NAME = 'TABLE_1');
ОШИБКИ НЕТ!!
Re: изменение типа поля в 2.1.1
Так бы и сказал, что руками напрямую в системных таблицах ковыряешься.
Это, к сожалению, пока не запрещено.
Это, к сожалению, пока не запрещено.