-- Connect as superuser (e.g. yugabyte)
-- Roles
CREATE ROLE analyst;
CREATE ROLE dba;
CREATE ROLE app_user;
-- Schema + tables
CREATE SCHEMA sales AUTHORIZATION dba;
CREATE TABLE sales.orders (id int, amount numeric);
CREATE SCHEMA hr AUTHORIZATION dba;
CREATE TABLE hr.employees (id int, name text);
-- Grants
GRANT USAGE ON SCHEMA sales TO analyst;
GRANT SELECT ON sales.orders TO analyst;
GRANT USAGE ON SCHEMA hr TO app_user;
GRANT SELECT, INSERT ON hr.employees TO app_user;