grant_statement ::= GRANT privilege_list ON object_type object_name TO grantee [ WITH GRANT OPTION ]
| GRANT column_privilege_list ON TABLE table_name TO grantee
revoke_statement ::= REVOKE [ GRANT OPTION FOR ] privilege_list ON object_type object_name FROM grantee
| REVOKE column_privilege_list ON TABLE table_name FROM grantee
privilege_list ::= privilege [, ...]
privilege ::= SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER -- for tables
| USAGE | SELECT | UPDATE -- for sequences
| EXECUTE -- for functions/procedures
| USAGE -- for types/domains
column_privilege_list ::= column_privilege [, ...]
column_privilege ::= SELECT ( column_name [, ...] )
| INSERT ( column_name [, ...] )
| UPDATE ( column_name [, ...] )
| REFERENCES ( column_name [, ...] )
object_type ::= TABLE | SEQUENCE | FUNCTION | PROCEDURE | TYPE
object_name ::= [schema.]name
| [schema.]function_name(argument_types) -- for functions/procedures
grantee ::= role_name | PUBLIC