значения свойств conf:
flyway.defaultSchema= discussions
flyway.schemas= discussions
выполняется миграция, как показано ниже:
+-----------+---------+------------------------------+--------+---------------------+---------+
| Category | Version | Description | Type | Installed On | State |
+-----------+---------+------------------------------+--------+---------------------+---------+
| | | << Flyway Schema Creation >> | SCHEMA | 2020-03-23 15:55:38 | Success |
| Versioned | 1 | INITIAL SETUP | SQL | 2020-03-23 15:55:38 | Success |
| Versioned | 2 | R INITIAL SETUP | SQL | | Pending |
| Versioned | 3 | R1 INITIAL SETUP | SQL | | Pending |
| Versioned | 4 | CREATE TABLE TEMPLATE | SQL | | Pending |
При первоначальной настройке будет создано табличное пространство
create tablespace tablespace_dts location 'E:\Tablespace\tablespace_dts';
create tablespace tablespace_mtd location 'E:\Tablespace\tablespace_mtd';
create tablespace tablespace_ind location 'E:\Tablespace\tablespace_ind';
create tablespace tablespace_out location 'E:\Tablespace\tablespace_out';
create tablespace tablespace_temp location 'E:\Tablespace\tablespace_temp';
v2 выполнит следующее
begin
for c in select 1 where not exists (select 1 from pg_user where usename = 'app_user' ) loop
raise notice 'in app_user';
execute ' create user app_user with password ''adept''';
end loop;
for c in select 1 where exists (select 1 from pg_tablespace,pg_user where spcname = 'tablespace_dts' and usename = 'app_user') loop
raise notice 'in grant create on tablespace_dts to app_user';
execute 'grant create on tablespace tablespace_dts to app_user with grant option';
end loop;
for c in select 1 where exists (select 1 from pg_tablespace,pg_user where spcname = 'tablespace_mtd' and usename = 'app_user') loop
raise notice 'in grant create on tablespace_mtd to app_user';
execute 'grant create on tablespace tablespace_mtd to app_user with grant option';
end loop;
for c in select 1 where exists (select 1 from pg_tablespace,pg_user where spcname = 'tablespace_ind' and usename = 'app_user') loop
raise notice 'in grant create on tablespace_ind to app_user';
execute 'grant create on tablespace tablespace_ind to app_user with grant option';
end loop;
for c in select 1 where exists (select 1 from pg_tablespace,pg_user where spcname = 'tablespace_out' and usename = 'app_user') loop
raise notice 'in grant create on tablespace_out to app_user';
execute 'grant create on tablespace tablespace_out to app_user with grant option';
end loop;
for c in select 1 where exists (select 1 from pg_tablespace,pg_user where spcname = 'tablespace_temp' and usename = 'app_user') loop
raise notice 'in grant create on tablespace_temp to app_user';
execute 'grant create on tablespace tablespace_temp to app_user with grant option';
end loop;
обратите внимание, что здесь работы с грантами
v3 будут делать следующее:
grant usage on schema discussions to app_user;
grant select on all tables in schema discussions to app_user;
grant update on all tables in schema discussions to app_user;
grant insert on all tables in schema discussions to app_user;
grant create on schema discussions to app_user with grant option;
v4 создает таблицу, скажем, webhook_certificate
Поэтому, когда я пытаюсь запросить таблицу webhook_certificate из app_user в обсуждениях схемы. он говорит, что разрешение отклонено, хотя я предоставил в v3.
, если тот же v3 выполняется вручную, он работает и позволяет получить доступ к Discussions.webhook_certificate. Пожалуйста, обратите внимание: v3 помечен как успешный, без сбоев во время перелета. Тогда почему гранты не работают.
Пожалуйста, помогите.