summaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/grant.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/ref/grant.sgml')
-rw-r--r--doc/src/sgml/ref/grant.sgml931
1 files changed, 447 insertions, 484 deletions
diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml
index 5dd043e795..395f90061d 100644
--- a/doc/src/sgml/ref/grant.sgml
+++ b/doc/src/sgml/ref/grant.sgml
@@ -1,269 +1,257 @@
-<REFENTRY ID="SQL-GRANT">
- <REFMETA>
- <REFENTRYTITLE>
- GRANT
- </REFENTRYTITLE>
- <REFMISCINFO>SQL - Language Statements</REFMISCINFO>
- </REFMETA>
- <REFNAMEDIV>
- <REFNAME>
- GRANT
- </REFNAME>
- <REFPURPOSE>
- Grants access privilege to a user, a group or all users
- </REFPURPOSE>
- </refnamediv>
- <REFSYNOPSISDIV>
- <REFSYNOPSISDIVINFO>
- <DATE>1998-09-23</DATE>
- </REFSYNOPSISDIVINFO>
- <SYNOPSIS>
- GRANT <REPLACEABLE CLASS="PARAMETER">privilege</REPLACEABLE> [, ...]
- ON <REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE> [, ...]
- TO { PUBLIC | GROUP <REPLACEABLE CLASS="PARAMETER">group</REPLACEABLE> | <REPLACEABLE CLASS="PARAMETER">username</REPLACEABLE> }
- </SYNOPSIS>
+<refentry id="SQL-GRANT">
+ <refmeta>
+ <refentrytitle>
+ GRANT
+ </refentrytitle>
+ <refmiscinfo>SQL - Language Statements</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>
+ GRANT
+ </refname>
+ <refpurpose>
+ Grants access privilege to a user, a group or all users
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <refsynopsisdivinfo>
+ <date>1998-09-23</date>
+ </refsynopsisdivinfo>
+ <synopsis>
+GRANT <replaceable class="PARAMETER">privilege</replaceable> [, ...] ON <replaceable class="PARAMETER">object</replaceable> [, ...]
+ TO { PUBLIC | GROUP <replaceable class="PARAMETER">group</replaceable> | <replaceable class="PARAMETER">username</replaceable> }
+ </synopsis>
- <REFSECT2 ID="R2-SQL-GRANT-1">
- <REFSECT2INFO>
- <DATE>1998-09-23</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>
- Access all of the columns of a specific
- table/view.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- INSERT
- </TERM>
- <LISTITEM>
- <PARA>
- Insert data into all columns of a
- specific table.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- UPDATE
- </TERM>
- <LISTITEM>
- <PARA>
- Update all columns of a specific
- table.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- DELETE
- </TERM>
- <LISTITEM>
- <PARA>
- Delete rows from a specific table.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- RULE
- </TERM>
- <LISTITEM>
- <PARA>
- Define rules on the table/view
- (See CREATE RULE statement).
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- ALL
- </TERM>
- <LISTITEM>
- <PARA>
- Grant all privileges.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE>
- </TERM>
- <LISTITEM>
- <PARA>
- The name of an object to which to grant access.
- The possible objects are:
- </para>
-
- <para>
- <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>
- PUBLIC
- </TERM>
- <LISTITEM>
- <PARA>
- A short form representing all users.
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- GROUP <REPLACEABLE CLASS="PARAMETER">group</REPLACEABLE>
- </TERM>
- <LISTITEM>
- <PARA>
- A <REPLACEABLE CLASS="PARAMETER">group</REPLACEABLE> to whom to grant privileges.
- In the current release, the group must be created explicitly as described below.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">username</REPLACEABLE>
- </TERM>
- <LISTITEM>
- <PARA>
- The name of a user to whom grant privileges. PUBLIC is a short form
- representing all users.
- </para>
- </listitem>
- </varlistentry>
- </VARIABLELIST>
- </para>
- </REFSECT2>
-
- <REFSECT2 ID="R2-SQL-GRANT-2">
- <REFSECT2INFO>
- <DATE>1998-09-23</DATE>
- </REFSECT2INFO>
- <TITLE>
- Outputs
- </TITLE>
- <PARA>
-
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- CHANGE
- </TERM>
- <LISTITEM>
- <PARA>
- Message returned if successful.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- ERROR: ChangeAcl: class "<REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE>"
- not found
- </TERM>
- <LISTITEM>
- <PARA>
- Message returned if the specified object is not available or
- if it is impossible
- to give privileges to the specified group or users.
- </para>
- </listitem>
- </varlistentry>
- </VARIABLELIST>
- </para>
- </REFSECT2>
- </REFSYNOPSISDIV>
-
- <REFSECT1 ID="R1-SQL-GRANT-1">
- <REFSECT1INFO>
- <DATE>1998-09-23</DATE>
- </REFSECT1INFO>
- <TITLE>
- Description
- </TITLE>
- <PARA>
- GRANT allows the creator of an object to give specific permissions to
- all users (PUBLIC) or to a certain user or group.
- Users other than the creator don't have any access permission
- unless the creator GRANTs permissions, after the object
- is created.
- </para>
-
- <para>
- Once a user has a privilege on an object, he is enabled to exercise
- that privilege.
- There is no need to GRANT privileges to the creator of
- an object, the creator automatically holds ALL privileges, and can
- also drop the object.
- </para>
-
- <REFSECT2 ID="R2-SQL-GRANT-3">
- <REFSECT2INFO>
- <DATE>1998-09-23</DATE>
- </REFSECT2INFO>
- <TITLE>
- Notes
- </TITLE>
- <PARA>
- Use the <command>psql \z</command> command
- for further information about permissions
- on existing objects:
- <programlisting>
+ <refsect2 id="R2-SQL-GRANT-1">
+ <refsect2info>
+ <date>1998-09-23</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>
+ Access all of the columns of a specific
+ table/view.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>INSERT</term>
+ <listitem>
+ <para>
+ Insert data into all columns of a
+ specific table.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>UPDATE</term>
+ <listitem>
+ <para>
+ Update all columns of a specific
+ table.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>DELETE</term>
+ <listitem>
+ <para>
+ Delete rows from a specific table.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RULE</term>
+ <listitem>
+ <para>
+ Define rules on the table/view
+ (See CREATE RULE statement).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ALL</term>
+ <listitem>
+ <para>
+ Grant all privileges.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable class="PARAMETER">object</replaceable></term>
+ <listitem>
+ <para>
+ The name of an object to which to grant access.
+ The possible objects are:
+
+ <itemizedlist spacing="compact" mark="bullet">
+ <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>PUBLIC</term>
+ <listitem>
+ <para>
+ A short form representing all users.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>GROUP <replaceable class="PARAMETER">group</replaceable></term>
+ <listitem>
+ <para>
+ A <replaceable class="PARAMETER">group</replaceable> to whom to grant privileges.
+ In the current release, the group must be created explicitly as described below.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <replaceable class="PARAMETER">username</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The name of a user to whom grant privileges. PUBLIC is a short form
+ representing all users.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+
+ <refsect2 id="R2-SQL-GRANT-2">
+ <refsect2info>
+ <date>1998-09-23</date>
+ </refsect2info>
+ <title>
+ Outputs
+ </title>
+ <para>
+
+ <variablelist>
+ <varlistentry>
+ <term><computeroutput>
+CHANGE
+ </computeroutput></term>
+ <listitem>
+ <para>
+ Message returned if successful.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>
+ERROR: ChangeAcl: class "<replaceable class="PARAMETER">object</replaceable>" not found
+ </computeroutput></term>
+ <listitem>
+ <para>
+ Message returned if the specified object is not available or
+ if it is impossible
+ to give privileges to the specified group or users.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+ </refsynopsisdiv>
+
+ <refsect1 id="R1-SQL-GRANT-1">
+ <refsect1info>
+ <date>1998-09-23</date>
+ </refsect1info>
+ <title>
+ Description
+ </title>
+ <para>
+ <command>GRANT</command> allows the creator of an object to give specific permissions to
+ all users (PUBLIC) or to a certain user or group.
+ Users other than the creator don't have any access permission
+ unless the creator GRANTs permissions, after the object
+ is created.
+ </para>
+
+ <para>
+ Once a user has a privilege on an object, he is enabled to exercise
+ that privilege.
+ There is no need to GRANT privileges to the creator of
+ an object, the creator automatically holds ALL privileges, and can
+ also drop the object.
+ </para>
+
+ <refsect2 id="R2-SQL-GRANT-3">
+ <refsect2info>
+ <date>1998-09-23</date>
+ </refsect2info>
+ <title>
+ Notes
+ </title>
+
+ <para>
+ Currently, to grant privileges in <productname>Postgres</productname>
+ to only few columns, you must
+ create a view having desired columns and then grant privileges
+ to that view.
+ </para>
+
+ <para>
+ Use <command>psql \z</command>
+ for further information about permissions
+ on existing objects:
+ <programlisting>
Database = lusitania
+------------------+---------------------------------------------+
| Relation | Grant/Revoke Permissions |
@@ -280,229 +268,204 @@
a -- INSERT
R -- RULE
arwR -- ALL
- </programlisting>
+ </programlisting>
- <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>
- Refer to REVOKE statements to revoke access privileges.
- </para>
- </tip>
- </para>
- </REFSECT2>
- </refsect1>
-
- <REFSECT1 ID="R1-SQL-GRANT-2">
- <TITLE>
- Usage
- </TITLE>
- <PARA>
- <ProgramListing>
- -- grant insert privilege to all users on table films:
- --
- GRANT INSERT ON films TO PUBLIC;
- </programlisting>
-
+ <tip>
+ <para>
+ Currently, to create a GROUP you have to insert
+ data manually into table pg_group as:
<programlisting>
- -- grant all privileges to user manuel on view kinds:
- --
- GRANT ALL ON kinds TO manuel;
- </ProgramListing>
- </para>
- </REFSECT1>
-
- <REFSECT1 ID="R1-SQL-GRANT-3">
- <TITLE>
- Compatibility
- </TITLE>
- <PARA>
- </PARA>
+INSERT INTO pg_group VALUES ('todos');
+CREATE USER miriam IN GROUP todos;
+ </programlisting>
+ </para>
+ </tip>
+ </para>
+
+ <para>
+ Refer to REVOKE statements to revoke access privileges.
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1 id="R1-SQL-GRANT-2">
+ <title>
+ Usage
+ </title>
+ <para>
+ Grant insert privilege to all users on table films:
+
+ <programlisting>
+GRANT INSERT ON films TO PUBLIC;
+ </programlisting>
+ </para>
+
+ <para>
+ Grant all privileges to user manuel on view kinds:
+
+ <programlisting>
+GRANT ALL ON kinds TO manuel;
+ </programlisting>
+ </para>
+ </refsect1>
+
+ <refsect1 id="R1-SQL-GRANT-3">
+ <title>
+ Compatibility
+ </title>
+ <para>
+ </para>
- <REFSECT2 ID="R2-SQL-GRANT-4">
- <REFSECT2INFO>
- <DATE>1998-09-23</DATE>
- </REFSECT2INFO>
- <TITLE>
- SQL92
- </TITLE>
- <PARA>
- The <acronym>SQL92</acronym> syntax for GRANT allows setting privileges
- for individual columns
- within a table, and allows setting a privilege to grant
- the same privileges to others.
-
- <SYNOPSIS>
- GRANT <REPLACEABLE CLASS="PARAMETER">privilege</REPLACEABLE> [, ...]
- ON <REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE> [ ( <REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE> [, ...] ) ] [, ...]
- TO { PUBLIC | <REPLACEABLE CLASS="PARAMETER">username</REPLACEABLE> [, ...] }
- [ WITH GRANT OPTION ]
- </SYNOPSIS>
-
- Fields are compatible with the those in the <acronym>Postgres</acronym>
- implementation, with the following additions:
-
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">privilege</REPLACEABLE>
- SELECT
- </TERM>
- <LISTITEM>
- <PARA>
- <acronym>SQL92</acronym> permits additional privileges to be specified:
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- REFERENCES
- </TERM>
- <LISTITEM>
- <PARA>
- Allowed to reference some or all of the columns of a specific
- table/view in integrity constraints.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- USAGE
- </TERM>
- <LISTITEM>
- <PARA>
- Allowed to use a domain, character set, collation
- or translation.
- If an object specifies anything other than a table/view,
- <REPLACEABLE CLASS="PARAMETER">privilege</REPLACEABLE>
- must specify only USAGE.
- </para>
- </listitem>
- </varlistentry>
-
+ <refsect2 id="R2-SQL-GRANT-4">
+ <refsect2info>
+ <date>1998-09-23</date>
+ </refsect2info>
+ <title>
+ SQL92
+ </title>
+ <para>
+ The <acronym>SQL92</acronym> syntax for GRANT allows setting privileges
+ for individual columns
+ within a table, and allows setting a privilege to grant
+ the same privileges to others:
+
+ <synopsis>
+GRANT <replaceable class="PARAMETER">privilege</replaceable> [, ...]
+ ON <replaceable class="PARAMETER">object</replaceable> [ ( <replaceable class="PARAMETER">column</replaceable> [, ...] ) ] [, ...]
+ TO { PUBLIC | <replaceable class="PARAMETER">username</replaceable> [, ...] } [ WITH GRANT OPTION ]
+ </synopsis>
+ </para>
+
+ <para>
+ Fields are compatible with the those in the <acronym>Postgres</acronym>
+ implementation, with the following additions:
+
+ <variablelist>
+ <varlistentry>
+ <term><replaceable class="PARAMETER">privilege</replaceable></term>
+ <listitem>
+ <para>
+ <acronym>SQL92</acronym> permits additional privileges to be specified:
+
+ <variablelist>
+ <varlistentry>
+ <term>SELECT</term>
+ <listitem>
+ <para>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>REFERENCES</term>
+ <listitem>
+ <para>
+ Allowed to reference some or all of the columns of a specific
+ table/view in integrity constraints.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>USAGE</term>
+ <listitem>
+ <para>
+ Allowed to use a domain, character set, collation
+ or translation.
+ If an object specifies anything other than a table/view,
+ <replaceable class="PARAMETER">privilege</replaceable>
+ must specify only USAGE.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
-
- <tip>
- <para>
- Currently, to grant privileges in <productname>Postgres</productname>
- to only few columns, you must
- create a view having desired columns and then grant privileges
- to that view.
- </para>
- </tip>
-
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable class="PARAMETER">object</replaceable></term>
+ <listitem>
+ <para>
+
<variablelist>
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE>
- </TERM>
- <LISTITEM>
- <PARA>
-
- <variablelist>
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">object</REPLACEABLE>
- </TERM>
- <LISTITEM>
- <PARA>
- <acronym>SQL92</acronym> allows an additional non-functional keyword:
-
- <simplelist>
- <member>
- [ TABLE ] table
- </member>
- </simplelist>
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- CHARACTER SET
- </TERM>
- <LISTITEM>
- <PARA>
- Allowed to use the specified character set.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- COLLATION
- </TERM>
- <LISTITEM>
- <PARA>
- Allowed to use the specified collation sequence.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- TRANSLATION
- </TERM>
- <LISTITEM>
- <PARA>
- Allowed to use the specified character set translation.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- DOMAIN
- </TERM>
- <LISTITEM>
- <PARA>
- Allowed to use the specified domain.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- WITH GRANT OPTION
- </TERM>
- <LISTITEM>
- <PARA>
- Allowed to grant the same privilege to others.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>[ TABLE ] <replaceable class="PARAMETER">table</replaceable></term>
+ <listitem>
+ <para>
+ <acronym>SQL92</acronym> allows the additional
+ non-functional keyword <literal>TABLE</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CHARACTER SET</term>
+ <listitem>
+ <para>
+ Allowed to use the specified character set.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>COLLATION</term>
+ <listitem>
+ <para>
+ Allowed to use the specified collation sequence.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>TRANSLATION</term>
+ <listitem>
+ <para>
+ Allowed to use the specified character set translation.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>DOMAIN</term>
+ <listitem>
+ <para>
+ Allowed to use the specified domain.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>WITH GRANT OPTION</term>
+ <listitem>
+ <para>
+ Allowed to grant the same privilege to others.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
- </para>
- </refsect2>
- </refsect1>
-</REFENTRY>
-
-<!--
-<REPLACEABLE CLASS="PARAMETER">
-</REPLACEABLE>
-<ReturnValue></ReturnValue>
-<PARA>
-</PARA>
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>&bull;
-</TERM>
-<LISTITEM>
-<PARA>
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-</VARIABLELIST>
-<PARA>
-</PARA>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:nil
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../reference.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:"/usr/lib/sgml/catalog"
+sgml-local-ecat-files:nil
+End:
-->