sql-parser-cst icon indicating copy to clipboard operation
sql-parser-cst copied to clipboard

Postgres support (users, roles, groups)

Open nene opened this issue 1 year ago • 0 comments

Roles

  • [x] CREATE ROLE
    • [x] [WITH] option ...:
      • [x] SUPERUSER | NOSUPERUSER
      • [x] CREATEDB | NOCREATEDB
      • [x] CREATEROLE | NOCREATEROLE
      • [x] INHERIT | NOINHERIT
      • [x] LOGIN | NOLOGIN
      • [x] REPLICATION | NOREPLICATION
      • [x] BYPASSRLS | NOBYPASSRLS
      • [x] CONNECTION LIMIT connlimit
      • [x] [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
      • [x] VALID UNTIL 'timestamp'
      • [x] IN ROLE role_name [, ...]
      • [x] ROLE role_name [, ...]
      • [x] ADMIN role_name [, ...]
      • [x] SYSID uid
  • [x] ALTER ROLE
    • [x] role_name | CURRENT_ROLE | CURRENT_USER | SESSION_USER
    • [x] ALL
    • [x] [WITH] option ...
    • [x] RENAME TO new_name
    • [x] [ IN DATABASE database_name ]
    • [x] SET configuration_parameter { TO | = } { value | DEFAULT }
    • [x] SET configuration_parameter FROM CURRENT
    • [x] RESET configuration_parameter
    • [x] RESET ALL
  • [x] DROP ROLE
    • [x] [IF EXISTS]
    • [x] name, ...
  • [x] SET ROLE
    • [x] [ SESSION | LOCAL ]
    • [x] SET ROLE role_name
    • [x] SET ROLE 'role_name'
    • [x] SET ROLE NONE
    • [x] RESET ROLE

User mappings

Users

Groups

Adding/removing privileges

  • [x] GRANT privilege
    • [x] ALL [ PRIVILEGES ]
    • [x] tables:
      • [x] { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | MAINTAIN } [, ...]
      • [x] ON [ TABLE ] table_name [, ...]
      • [x] ON ALL TABLES IN SCHEMA schema_name [, ...]
    • [x] columns:
      • [x] { SELECT | INSERT | UPDATE | REFERENCES } [, ...]
      • [x] ( column_name [, ...] )
      • [x] ON [ TABLE ] table_name [, ...]
    • [x] sequences:
      • [x] { USAGE | SELECT | UPDATE } [, ...]
      • [x] ON SEQUENCE seq_name [, ...]
      • [x] ON ALL SEQUENCES IN SCHEMA schema_name [, ...]
    • [x] databases:
      • [x] { CREATE | CONNECT | TEMPORARY | TEMP } [, ...]
      • [x] ON DATABASE database_name [, ...]
    • [x] domains:
      • [x] { USAGE }
      • [x] ON DOMAIN domain_name [, ...]
    • [x] foreign data wrappers:
      • [x] { USAGE }
      • [x] ON FOREIGN DATA WRAPPER fdw_name [, ...]
    • [x] foreign servers:
      • [x] { USAGE }
      • [x] ON FOREIGN SERVER server_name [, ...]
    • [x] functions:
      • [x] { EXECUTE }
      • [x] ON { { FUNCTION | PROCEDURE | ROUTINE } routine_name [, ...]
      • [x] [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ]
      • [x] ON ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...]
    • [x] languages:
      • [x] { USAGE }
      • [x] ON LANGUAGE lang_name [, ...]
    • [x] large objects:
      • [x] { SELECT | UPDATE } [, ...]
      • [x] ON LARGE OBJECT loid [, ...]
    • [x] parameters:
      • [x] { SET | ALTER SYSTEM } [, ... ]
      • [x] ON PARAMETER configuration_parameter [, ...]
    • [x] schemas:
      • [x] { CREATE | USAGE } [, ...]
      • [x] ON SCHEMA schema_name [, ...]
    • [x] tablespaces:
      • [x] { CREATE }
      • [x] ON TABLESPACE tablespace_name [, ...]
    • [x] types:
      • [x] { USAGE }
      • [x] ON TYPE type_name [, ...]
    • [x] TO role_specification [, ...]
    • [x] [ WITH GRANT OPTION ]
    • [x] [ GRANTED BY role_specification ]
    • [x] role_specification:
      • [x] [ GROUP ] role_name
      • [x] PUBLIC
      • [x] CURRENT_ROLE
      • [x] CURRENT_USER
      • [x] SESSION_USER
  • [x] GRANT role
    • [x] role_name [, ...]
    • [x] TO role_specification [, ...]
    • [x] [ WITH { ADMIN | INHERIT | SET } { OPTION | TRUE | FALSE } ]
    • [x] [ GRANTED BY role_specification ]
  • [x] REVOKE privilege
    • [x] [ GRANT OPTION FOR ]
    • [x] ALL [ PRIVILEGES ]
    • [x] tables:
    • [x] columns:
    • [x] sequences:
    • [x] databases:
    • [x] domains:
    • [x] foreign data wrappers:
    • [x] foreign servers:
    • [x] functions:
    • [x] languages:
    • [x] large objects:
    • [x] parameters:
    • [x] schemas:
    • [x] tablespaces:
    • [x] types:
    • [x] FROM role_specification [, ...]
    • [x] [ GRANTED BY role_specification ]
    • [x] [ CASCADE | RESTRICT ]
  • [x] REVOKE role
    • [x] [ { ADMIN | INHERIT | SET } OPTION FOR ]
    • [x] role_name [, ...]
    • [x] FROM role_specification [, ...]
    • [x] [ GRANTED BY role_specification ]
    • [x] [ CASCADE | RESTRICT ]
  • [ ] ALTER DEFAULT PRIVILEGES

nene avatar Feb 28 '24 10:02 nene