1-
21CREATE SCHEMA audit ;
32CREATE SCHEMA analytics ;
43
5-
6- CREATE ROLE app_reader NOINHERIT;
7- CREATE ROLE app_writer NOINHERIT;
8- CREATE ROLE auditor NOINHERIT;
4+ CREATE ROLE app_reader NOINHERIT;
5+ CREATE ROLE app_writer NOINHERIT;
6+ CREATE ROLE auditor NOINHERIT;
97CREATE ROLE report_user NOINHERIT;
108CREATE ROLE backup_role NOINHERIT;
119
12-
10+ ALTER ROLE backup_user CREATEDB;
1311
1412GRANT SELECT ON ALL TABLES IN SCHEMA public TO app_reader;
15- GRANT SELECT , INSERT, UPDATE , DELETE ON ALL TABLES IN SCHEMA public TO app_writer;
13+ GRANT SELECT ,INSERT,UPDATE ,DELETE ON ALL TABLES IN SCHEMA public TO app_writer;
1614GRANT SELECT ON ALL TABLES IN SCHEMA audit TO auditor;
1715GRANT SELECT ON ALL TABLES IN SCHEMA analytics TO report_user;
18- GRANT CONNECT ON DATABASE videogames_db TO backup_role;
19- GRANT USAGE ON SCHEMA public, audit, analytics TO backup_role;
20- GRANT SELECT ON ALL TABLES IN SCHEMA public, audit, analytics TO backup_role;
21- GRANT SELECT ON ALL SEQUENCES IN SCHEMA public, audit, analytics TO backup_role;
22-
23-
24-
2516
26- ALTER DEFAULT PRIVILEGES IN SCHEMA public, audit, analytics
27- GRANT SELECT ON TABLES TO backup_role;
28- ALTER DEFAULT PRIVILEGES IN SCHEMA public, audit, analytics
29- GRANT SELECT ON SEQUENCES TO backup_role;
30- ALTER ROLE backup_user CREATEDB;
17+ GRANT CONNECT ON DATABASE videogames_db TO backup_role;
18+ GRANT USAGE ON SCHEMA public,audit,analytics TO backup_role;
19+ GRANT SELECT ON ALL TABLES IN SCHEMA public,audit,analytics TO backup_role;
20+ GRANT SELECT ON ALL SEQUENCES IN SCHEMA public,audit,analytics TO backup_role;
3121
32- -- ------------
22+ ALTER DEFAULT PRIVILEGES IN SCHEMA public,audit,analytics
23+ GRANT SELECT ON TABLES TO backup_role;
24+ ALTER DEFAULT PRIVILEGES IN SCHEMA public,audit,analytics
25+ GRANT SELECT ON SEQUENCES TO backup_role;
3326
34- GRANT USAGE ON SCHEMA audit TO app_writer;
27+ GRANT USAGE ON SCHEMA audit TO app_writer;
3528GRANT INSERT ON audit .audit_log TO app_writer;
36- GRANT USAGE, SELECT ON SEQUENCE audit .audit_log_id_seq TO app_writer;
37-
38-
29+ GRANT USAGE,SELECT ON SEQUENCE audit .audit_log_id_seq TO app_writer;
3930
40- CREATE USER game_reader WITH PASSWORD ' readerpass' ;
41- CREATE USER game_writer WITH PASSWORD ' writerpass' ;
42- CREATE USER audit_user WITH PASSWORD ' auditpass' ;
31+ CREATE USER game_reader WITH PASSWORD ' readerpass' ;
32+ CREATE USER game_writer WITH PASSWORD ' writerpass' ;
33+ CREATE USER audit_user WITH PASSWORD ' auditpass' ;
4334CREATE USER report_user_app WITH PASSWORD ' reportpass' ;
44- CREATE USER backup_user WITH PASSWORD ' backuppass' ;
45-
46-
47-
35+ CREATE USER backup_user WITH PASSWORD ' backuppass' ;
4836
49- GRANT app_reader TO game_reader;
50- GRANT app_writer TO game_writer;
51- GRANT auditor TO audit_user;
37+ GRANT app_reader TO game_reader;
38+ GRANT app_writer TO game_writer;
39+ GRANT auditor TO audit_user;
5240GRANT report_user TO report_user_app;
5341GRANT backup_role TO backup_user;
5442
43+ ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ,INSERT,UPDATE ,DELETE ON TABLES TO app_writer;
5544
56- ALTER DEFAULT PRIVILEGES IN SCHEMA public
57- GRANT SELECT , INSERT, UPDATE , DELETE ON TABLES TO app_writer;
58-
59-
45+ GRANT USAGE ON SCHEMA public TO report_user;
46+ GRANT SELECT ON TABLE public .django_session TO report_user;
47+ GRANT SELECT ON TABLE public .auth_user TO report_user;
48+ GRANT SELECT ON TABLE public .django_content_type TO report_user;
49+ GRANT SELECT ON TABLE public .auth_permission TO report_user;
6050
6151-- -----------------------------------------------------------------------------
6252
@@ -187,6 +177,7 @@ WHERE rank_in_genre <= 5;
187177GRANT SELECT ON analytics .top_reviewed_games_per_genre TO report_user;
188178
189179
180+
190181CREATE MATERIALIZED VIEW analytics .avg_rating_per_game AS
191182SELECT
192183 vg .id AS game_id,
@@ -271,6 +262,8 @@ ON public.videogames_register_videogame
271262USING GIN(to_tsvector(' english' , description));
272263
273264
265+
266+
274267SELECT * FROM videogames_register_developer WHERE videogames_register_developer .id IS NULL ;
275268
276269-- ------------------------------------------------------
@@ -287,15 +280,6 @@ HAVING COUNT(DISTINCT r.game_id) > 3;
287280
288281
289282
290- SELECT
291- u .username ,
292- COUNT (DISTINCT r .game_id ) AS reviewed_games
293- FROM public .auth_user u
294- JOIN public .videogames_register_review r ON u .id = r .user_id
295- GROUP BY u .username
296- HAVING COUNT (DISTINCT r .game_id ) > 3 ;
297-
298-
299283SELECT
300284 vg .title ,
301285 ROUND(AVG (r .rating )::numeric , 2 ) AS avg_rating,
0 commit comments