summaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/revoke.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/ref/revoke.sgml')
-rw-r--r--doc/src/sgml/ref/revoke.sgml664
1 files changed, 356 insertions, 308 deletions
diff --git a/doc/src/sgml/ref/revoke.sgml b/doc/src/sgml/ref/revoke.sgml
index abbd2439d8..5fc793ea1d 100644
--- a/doc/src/sgml/ref/revoke.sgml
+++ b/doc/src/sgml/ref/revoke.sgml
@@ -12,7 +12,7 @@ REVOKE
<REFPURPOSE>
Revokes access privilege from a user, a group or all users.
</REFPURPOSE>
-
+ </refnamediv>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1998-09-24</DATE>
@@ -25,312 +25,360 @@ REVOKE <REPLACEABLE CLASS="PARAMETER">privilege</REPLACEABLE> [, ...]
FROM { PUBLIC | GROUP <REPLACEABLE CLASS="PARAMETER">group</REPLACEABLE> | <REPLACEABLE CLASS="PARAMETER">username</REPLACEABLE> }
</SYNOPSIS>
-<REFSECT2 ID="R2-SQL-REVOKE-1">
-<REFSECT2INFO>
-<DATE>1998-09-24</DATE>
-</REFSECT2INFO>
-<TITLE>
-Inputs
-</TITLE>
-<PARA>
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">privilege</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
- The possible privileges are:
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-SELECT
-</TERM>
-<LISTITEM>
-<PARA>
-Privilege to access all of the columns of a specific
- table/view.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
-INSERT
-</TERM>
-<LISTITEM>
-<PARA>
-Privilege to insert data into all columns of a
- specific table.
-
-<VARLISTENTRY>
-<TERM>
-UPDATE
-</TERM>
-<LISTITEM>
-<PARA>
-Privilege to update all columns of a specific
- table.
-
-<VARLISTENTRY>
-<TERM>
-DELETE
-</TERM>
-<LISTITEM>
-<PARA>
-Privilege to delete rows from a specific table.
-
-<VARLISTENTRY>
-<TERM>
-RULE
-</TERM>
-<LISTITEM>
-<PARA>
-Privilege to define rules on table/view.
-(See <command>CREATE RULE</command>).
-
-<VARLISTENTRY>
-<TERM>
-ALL
-</TERM>
-<LISTITEM>
-<PARA>
-Rescind all privileges.
-
-</VARIABLELIST>
-
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
-The name of an object from which to revoke access.
- The possible objects are:
-<itemizedlist mark="bullet" spacing="compact">
-<listitem>
-<para>
-table
-
-<listitem>
-<para>
-view
-
-<listitem>
-<para>
-sequence
-
-<listitem>
-<para>
-index
-</itemizedlist>
-
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">group</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
- The name of a group from whom to revoke privileges.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">username</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
-The name of a user from whom revoke privileges. Use the PUBLIC keyword
-to specify all users.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
-PUBLIC
-</TERM>
-<LISTITEM>
-<PARA>
-Rescind the specified privilege(s) for all users.
-
-</LISTITEM>
-</VARLISTENTRY>
-</VARIABLELIST>
-
-</REFSECT2>
-
-<REFSECT2 ID="R2-SQL-REVOKE-2">
-<REFSECT2INFO>
-<DATE>1998-09-24</DATE>
-</REFSECT2INFO>
-<TITLE>
-Outputs
-</TITLE>
-<PARA>
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-CHANGE
-</TERM>
-<LISTITEM>
-<PARA>
- Message returned if successfully.
-
-<VARLISTENTRY>
-<TERM>
-ERROR
-</TERM>
-<LISTITEM>
-<PARA>
- Message returned if object is not available or impossible
- to revoke privileges from a group or users.
-
-</VARIABLELIST>
-
-</REFSECT2>
-</REFSYNOPSISDIV>
-
-<REFSECT1 ID="R1-SQL-REVOKE-1">
-<REFSECT1INFO>
-<DATE>1998-09-24</DATE>
-</REFSECT1INFO>
-<TITLE>
-Description
-</TITLE>
-<PARA>
- REVOKE allows creator of an object to revoke permissions granted
- before, from all users (via PUBLIC) or a certain user or group.
-
-<REFSECT2 ID="R2-SQL-REVOKE-3">
-<REFSECT2INFO>
-<DATE>1998-09-24</DATE>
-</REFSECT2INFO>
-<TITLE>
-Notes
-</TITLE>
-<PARA>
- Refer to psql \z command for further information about permissions
- on existing objects:
-
-<programlisting>
- Database = lusitania
- +------------------+---------------------------------------------+
- | Relation | Grant/Revoke Permissions |
- +------------------+---------------------------------------------+
- | mytable | {"=rw","miriam=arwR","group todos=rw"} |
- +------------------+---------------------------------------------+
- Legend:
- uname=arwR -- privileges granted to a user
- group gname=arwR -- privileges granted to a GROUP
- =arwR -- privileges granted to PUBLIC
-
- r -- SELECT
- w -- UPDATE/DELETE
- a -- INSERT
- R -- RULE
- arwR -- ALL
-</programlisting>
-
-<tip>
-<para>
-Currently, to create a GROUP you have to insert
+ <REFSECT2 ID="R2-SQL-REVOKE-1">
+ <REFSECT2INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Inputs
+ </TITLE>
+ <PARA>
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">privilege</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The possible privileges are:
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ SELECT
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Privilege to access all of the columns of a specific
+ table/view.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ INSERT
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Privilege to insert data into all columns of a
+ specific table.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ UPDATE
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Privilege to update all columns of a specific
+ table.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ DELETE
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Privilege to delete rows from a specific table.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ RULE
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Privilege to define rules on table/view.
+ (See <command>CREATE RULE</command>).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ ALL
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Rescind all privileges.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The name of an object from which to revoke access.
+ The possible objects are:
+ <itemizedlist mark="bullet" spacing="compact">
+ <listitem>
+ <para>
+ table
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ view
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ sequence
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ index
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">group</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The name of a group from whom to revoke privileges.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">username</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The name of a user from whom revoke privileges. Use the PUBLIC keyword
+ to specify all users.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ PUBLIC
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Rescind the specified privilege(s) for all users.
+ </para>
+ </LISTITEM>
+ </VARLISTENTRY>
+ </VARIABLELIST>
+ </para>
+ </REFSECT2>
+
+ <REFSECT2 ID="R2-SQL-REVOKE-2">
+ <REFSECT2INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Outputs
+ </TITLE>
+ <PARA>
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ CHANGE
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Message returned if successfully.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ ERROR
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Message returned if object is not available or impossible
+ to revoke privileges from a group or users.
+ </para>
+ </listitem>
+ </varlistentry>
+ </VARIABLELIST>
+ </para>
+ </REFSECT2>
+ </REFSYNOPSISDIV>
+
+ <REFSECT1 ID="R1-SQL-REVOKE-1">
+ <REFSECT1INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT1INFO>
+ <TITLE>
+ Description
+ </TITLE>
+ <PARA>
+ REVOKE allows creator of an object to revoke permissions granted
+ before, from all users (via PUBLIC) or a certain user or group.
+ </para>
+
+ <REFSECT2 ID="R2-SQL-REVOKE-3">
+ <REFSECT2INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Notes
+ </TITLE>
+ <PARA>
+ Refer to psql \z command for further information about permissions
+ on existing objects:
+
+ <programlisting>
+ Database = lusitania
+ +------------------+---------------------------------------------+
+ | Relation | Grant/Revoke Permissions |
+ +------------------+---------------------------------------------+
+ | mytable | {"=rw","miriam=arwR","group todos=rw"} |
+ +------------------+---------------------------------------------+
+ Legend:
+ uname=arwR -- privileges granted to a user
+ group gname=arwR -- privileges granted to a GROUP
+ =arwR -- privileges granted to PUBLIC
+
+ r -- SELECT
+ w -- UPDATE/DELETE
+ a -- INSERT
+ R -- RULE
+ arwR -- ALL
+ </programlisting>
+ </para>
+ <tip>
+ <para>
+ Currently, to create a GROUP you have to insert
data manually into table pg_group as:
-<programlisting>
- INSERT INTO pg_group VALUES ('todos');
- CREATE USER miriam IN GROUP todos;
-</programlisting>
-</tip>
-
-</REFSECT2>
-
-<REFSECT1 ID="R1-SQL-REVOKE-2">
-<TITLE>
-Usage
-</TITLE>
-<PARA>
-<ProgramListing>
--- revoke insert privilege from all users on table films:
---
-REVOKE INSERT ON films FROM PUBLIC;
-
--- revoke all privileges from user manuel on view kinds:
---
-REVOKE ALL ON kinds FROM manuel;
-</ProgramListing>
-
-</REFSECT1>
-
-<REFSECT1 ID="R1-SQL-REVOKE-3">
-<TITLE>
-Compatibility
-</TITLE>
-<PARA>
-
-<REFSECT2 ID="R2-SQL-REVOKE-4">
-<REFSECT2INFO>
-<DATE>1998-09-01</DATE>
-</REFSECT2INFO>
-<TITLE>
-SQL92
-</TITLE>
-<PARA>
- The SQL92 syntax for <command>REVOKE</command>
- has additional capabilities for rescinding
-privileges, including those on individual columns in tables:
-
-<variablelist>
-<varlistentry>
-<term>
-<synopsis>
-REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...]
- ON <replaceable class="parameter">object</replaceable>
- FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
-REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( <replaceable class="parameter">column</replaceable> [, ...] ) ]
- ON <replaceable class="parameter">object</replaceable>
- FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
-</synopsis>
-<listitem>
-<para>
-Refer to the <command>GRANT</command> command for details on individual fields.
-
-<varlistentry>
-<term>
-<synopsis>
-REVOKE GRANT OPTION FOR <replaceable class="parameter">privilege</replaceable> [, ...]
- ON <replaceable class="parameter">object</replaceable>
- FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
-</synopsis>
-<listitem>
-<para>
-Rescinds authority for a user to grant the specified privilege to others.
-Refer to the <command>GRANT</command> command for details on individual fields.
-
-</variablelist>
-
-<para>
- The possible objects are:
-<simplelist>
-<member> [ TABLE ] table/view
-<member> CHARACTER SET character-set
-<member> COLLATION collation
-<member> TRANSLATION translation
-<member> DOMAIN domain
-</simplelist>
-
-<para>
-If user1 gives a privilege WITH GRANT OPTION to user2,
- and user2 gives it to user3 then user1 can revoke
- this privilege in cascade using the CASCADE keyword.
-
-<para>
-If user1 gives a privilege WITH GRANT OPTION to user2,
- and user2 gives it to user3 then if user1 try revoke
- this privilege it fails if he/she specify the RESTRICT
- keyword.
+ <programlisting>
+ INSERT INTO pg_group VALUES ('todos');
+ CREATE USER miriam IN GROUP todos;
+ </programlisting>
+ </para>
+ </tip>
+
+ </REFSECT2>
+ </refsect1>
+
+ <REFSECT1 ID="R1-SQL-REVOKE-2">
+ <TITLE>
+ Usage
+ </TITLE>
+ <PARA>
+ <ProgramListing>
+ -- revoke insert privilege from all users on table films:
+ --
+ REVOKE INSERT ON films FROM PUBLIC;
+
+ -- revoke all privileges from user manuel on view kinds:
+ --
+ REVOKE ALL ON kinds FROM manuel;
+ </ProgramListing>
+ </para>
+ </REFSECT1>
+
+ <REFSECT1 ID="R1-SQL-REVOKE-3">
+ <TITLE>
+ Compatibility
+ </TITLE>
+
+ <REFSECT2 ID="R2-SQL-REVOKE-4">
+ <REFSECT2INFO>
+ <DATE>1998-09-01</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ SQL92
+ </TITLE>
+ <PARA>
+ The SQL92 syntax for <command>REVOKE</command>
+ has additional capabilities for rescinding
+ privileges, including those on individual columns in tables:
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <synopsis>
+ REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...]
+ ON <replaceable class="parameter">object</replaceable>
+ FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
+ REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( <replaceable class="parameter">column</replaceable> [, ...] ) ]
+ ON <replaceable class="parameter">object</replaceable>
+ FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
+ </synopsis>
+ </term>
+ <listitem>
+ <para>
+ Refer to the <command>GRANT</command> command for details on individual fields.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <synopsis>
+ REVOKE GRANT OPTION FOR <replaceable class="parameter">privilege</replaceable> [, ...]
+ ON <replaceable class="parameter">object</replaceable>
+ FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
+ </synopsis>
+ </term>
+ <listitem>
+ <para>
+ Rescinds authority for a user to grant the specified privilege to others.
+ Refer to the <command>GRANT</command> command for details on individual fields.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ The possible objects are:
+ <simplelist>
+ <member> [ TABLE ] table/view
+ </member>
+ <member> CHARACTER SET character-set
+ </member>
+ <member> COLLATION collation
+ </member>
+ <member> TRANSLATION translation
+ </member>
+ <member> DOMAIN domain
+ </member>
+ </simplelist>
+ </para>
+ <para>
+ If user1 gives a privilege WITH GRANT OPTION to user2,
+ and user2 gives it to user3 then user1 can revoke
+ this privilege in cascade using the CASCADE keyword.
+ </para>
+ <para>
+ If user1 gives a privilege WITH GRANT OPTION to user2,
+ and user2 gives it to user3 then if user1 try revoke
+ this privilege it fails if he/she specify the RESTRICT
+ keyword.
+ </para>
+ </refsect2>
+ </refsect1>
</REFENTRY>