grant all ...<> grant select, delete, insert, update .

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

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

Ответить
DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

grant all ...<> grant select, delete, insert, update .

Сообщение DSKalugin » 15 сен 2005, 20:06

Ситуация:
Сделал импорт внешней таблицы BDE-шным DataPump-ом в базу от имени SYSDBA, хотя база создана под юзером DSKALUGIN т.к. подо мной Датапумп отказывался делать импорт.
На залитую таблицу поставились права только для SYSDBA.
DSKALUGIN-у она не доступна.
А тут самое интересное
пытаюсь выставить права

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

grant all on Cross_Table to DSKALUGIN; - никакого эффекта!!!,
помогло только явное перечисление операций
grant select, delete, insert, update on Cross_Table to DSKALUGIN;
Это глюк или так задумано?
разве ALL не равно select, delete, insert, update

P.S. FB1.5.2 SS Win

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 16 сен 2005, 09:33

делай тестовый скрипт и шли мне - разберусь

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение DSKalugin » 17 сен 2005, 21:54

Тестовый скрипт не выявил никаких проблем.
Странно, что это было?
вот на всякий случай текст скриптов
C:\grant_check\grant_test.cmd

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

set fbpath="C:\Program Files\Firebird_1_5_2\bin

%fbpath%\gsec.exe" -a grant_check -pw grant_check -user sysdba -password masterkey

%fbpath%\isql.exe" -input C:\grant_check\grant_all.sql -o C:\grant_check\log1.log

%fbpath%\isql.exe" -input C:\grant_check\vw_error.sql -o C:\grant_check\log2.log

pause
C:\grant_check\grant_all.sql

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

SET SQL DIALECT 3;
SET NAMES WIN1251;

create database 'localhost:C:\grant_check\grant_check.fdb' 
user 'grant_check' password 'grant_check'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;

connect 'localhost:C:\grant_check\grant_check.fdb' user 'SYSDBA' password 'masterkey';

CREATE TABLE "ValutKurs" (
    "ID_Kurs"    SMALLINT NOT NULL,
    "ShortName"  VARCHAR(4) NOT NULL,
    "FullName"   VARCHAR(10) NOT NULL,
    "koeff"      NUMERIC(15,3) default 1 NOT NULL
);
COMMIT WORK;

INSERT INTO "ValutKurs" ("ID_Kurs", "ShortName", "FullName", "koeff") VALUES (0, 'EUR', 'Евро', 1);
INSERT INTO "ValutKurs" ("ID_Kurs", "ShortName", "FullName", "koeff") VALUES (1, 'UAH', 'Гривна', 7.3);
INSERT INTO "ValutKurs" ("ID_Kurs", "ShortName", "FullName", "koeff") VALUES (2, 'USD', 'Доллар США', 1.23);
INSERT INTO "ValutKurs" ("ID_Kurs", "ShortName", "FullName", "koeff") VALUES (3, 'PLN', 'Злотый', 4.35);
COMMIT WORK;

grant all on "ValutKurs" to grant_check;
COMMIT WORK;

select * from "ValutKurs";

exit;
C:\grant_check\vw_error.sql

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

connect 'localhost:C:\grant_check\grant_check.fdb' user 'grant_check' password 'grant_check';

select * from "ValutKurs";

exit;

Ответить