aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/alter_policy.sgml
blob: ab717f31c51b92b82f2b59078df3ad01ff39c3d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!--
doc/src/sgml/ref/alter_policy.sgml
PostgreSQL documentation
-->

<refentry id="SQL-ALTERPOLICY">
 <indexterm zone="sql-alterpolicy">
  <primary>ALTER POLICY</primary>
 </indexterm>

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

 <refnamediv>
  <refname>ALTER POLICY</refname>
  <refpurpose>change the definition of a row-security policy</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
ALTER POLICY <replaceable class="parameter">name</replaceable> ON <replaceable class="parameter">table_name</replaceable>
    [ RENAME TO <replaceable class="PARAMETER">new_name</replaceable> ]
    [ TO { <replaceable class="parameter">role_name</replaceable> | PUBLIC } [, ...] ]
    [ USING ( <replaceable class="parameter">expression</replaceable> ) ]
    [ WITH CHECK ( <replaceable class="parameter">check_expression</replaceable> ) ]
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>ALTER POLICY</command> changes the <replaceable class="parameter">
   definition</replaceable> of an existing row-security policy.
  </para>

  <para>
   To use <command>ALTER POLICY</command>, you must own the table that
   the policy applies to.
  </para>
 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable class="parameter">name</replaceable></term>
    <listitem>
     <para>
      The name of an existing policy to alter.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">table_name</replaceable></term>
    <listitem>
     <para>
      The name (optionally schema-qualified) of the table that the
      policy is on.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_name</replaceable></term>
    <listitem>
     <para>
      The new name for the policy.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">role_name</replaceable></term>
    <listitem>
     <para>
      The role to which the policy applies.  Multiple roles can be specified at one time.
      To apply the policy to all roles, use <literal>PUBLIC</literal>, which is also
      the default.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">expression</replaceable></term>
    <listitem>
     <para>
      The USING expression for the policy.  This expression will be added as a
      security-barrier qualification to queries which use the table
      automatically.  If multiple policies are being applied for a given
      table then they are all combined and added using OR.  The USING
      expression applies to records which are being retrieved from the table.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">check_expression</replaceable></term>
    <listitem>
     <para>
      The with-check expression for the policy.  This expression will be
      added as a WITH CHECK OPTION qualification to queries which use the
      table automatically.  If multiple policies are being applied for a
      given table then they are all combined and added using OR.  The WITH
      CHECK expression applies to records which are being added to the table.
     </para>
    </listitem>
   </varlistentry>

  </variablelist>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   <command>ALTER POLICY</command> is a <productname>PostgreSQL</productname> extension.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-createpolicy"></member>
   <member><xref linkend="sql-droppolicy"></member>
  </simplelist>
 </refsect1>

</refentry>