Home Explore Blog CI



postgresql

1st chunk of `doc/src/sgml/ref/grant.sgml`
2f0409e257f5534cb2fe89a8677e84c97a572534e7fe04b60000000100000fa0
<!--
doc/src/sgml/ref/grant.sgml
PostgreSQL documentation
-->

<refentry id="sql-grant">
 <indexterm zone="sql-grant">
  <primary>GRANT</primary>
 </indexterm>

 <refmeta>
  <refentrytitle>GRANT</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>GRANT</refname>
  <refpurpose>define access privileges</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | MAINTAIN }
    [, ...] | ALL [ PRIVILEGES ] }
    ON { [ TABLE ] <replaceable class="parameter">table_name</replaceable> [, ...]
         | ALL TABLES IN SCHEMA <replaceable class="parameter">schema_name</replaceable> [, ...] }
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { { SELECT | INSERT | UPDATE | REFERENCES } ( <replaceable class="parameter">column_name</replaceable> [, ...] )
    [, ...] | ALL [ PRIVILEGES ] ( <replaceable class="parameter">column_name</replaceable> [, ...] ) }
    ON [ TABLE ] <replaceable class="parameter">table_name</replaceable> [, ...]
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { { USAGE | SELECT | UPDATE }
    [, ...] | ALL [ PRIVILEGES ] }
    ON { SEQUENCE <replaceable class="parameter">sequence_name</replaceable> [, ...]
         | ALL SEQUENCES IN SCHEMA <replaceable class="parameter">schema_name</replaceable> [, ...] }
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }
    ON DATABASE <replaceable>database_name</replaceable> [, ...]
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON DOMAIN <replaceable>domain_name</replaceable> [, ...]
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON FOREIGN DATA WRAPPER <replaceable>fdw_name</replaceable> [, ...]
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON FOREIGN SERVER <replaceable>server_name</replaceable> [, ...]
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON { { FUNCTION | PROCEDURE | ROUTINE } <replaceable>routine_name</replaceable> [ ( [ [ <replaceable class="parameter">argmode</replaceable> ] [ <replaceable class="parameter">arg_name</replaceable> ] <replaceable class="parameter">arg_type</replaceable> [, ...] ] ) ] [, ...]
         | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA <replaceable class="parameter">schema_name</replaceable> [, ...] }
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE <replaceable>lang_name</replaceable> [, ...]
    TO <replaceable class="parameter">role_specification</replaceable> [, ...] [ WITH GRANT OPTION ]
    [ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]

GRANT { { SELECT

Title: GRANT - Define Access Privileges in PostgreSQL
Summary
This section of the PostgreSQL documentation defines the syntax for the GRANT command, which is used to grant specific privileges on database objects (tables, sequences, databases, domains, foreign data wrappers, foreign servers, functions, languages, etc.) to roles. It outlines the various privilege types (SELECT, INSERT, UPDATE, DELETE, etc.) and how to apply them to different object types, including options for granting the privilege with the option to grant it to others (WITH GRANT OPTION) and specifying the grantor (GRANTED BY).