]> granicus.if.org Git - postgresql/blob - doc/src/sgml/ref/alter_policy.sgml
Trim trailing whitespace
[postgresql] / doc / src / sgml / ref / alter_policy.sgml
1 <!--
2 doc/src/sgml/ref/alter_policy.sgml
3 PostgreSQL documentation
4 -->
5
6 <refentry id="SQL-ALTERPOLICY">
7  <indexterm zone="sql-alterpolicy">
8   <primary>ALTER POLICY</primary>
9  </indexterm>
10
11  <refmeta>
12   <refentrytitle>ALTER POLICY</refentrytitle>
13   <manvolnum>7</manvolnum>
14   <refmiscinfo>SQL - Language Statements</refmiscinfo>
15  </refmeta>
16
17  <refnamediv>
18   <refname>ALTER POLICY</refname>
19   <refpurpose>change the definition of a row level security policy</refpurpose>
20  </refnamediv>
21
22  <refsynopsisdiv>
23 <synopsis>
24 ALTER POLICY <replaceable class="parameter">name</replaceable> ON <replaceable class="parameter">table_name</replaceable> RENAME TO <replaceable class="PARAMETER">new_name</replaceable>
25
26 ALTER POLICY <replaceable class="parameter">name</replaceable> ON <replaceable class="parameter">table_name</replaceable>
27     [ TO { <replaceable class="parameter">role_name</replaceable> | PUBLIC | CURRENT_USER | SESSION_USER } [, ...] ]
28     [ USING ( <replaceable class="parameter">using_expression</replaceable> ) ]
29     [ WITH CHECK ( <replaceable class="parameter">check_expression</replaceable> ) ]
30 </synopsis>
31  </refsynopsisdiv>
32
33  <refsect1>
34   <title>Description</title>
35
36   <para>
37    <command>ALTER POLICY</command> changes the definition of an existing
38    row-level security policy.  Note that <command>ALTER POLICY</command>
39    only allows the set of roles to which the policy applies and the
40    <literal>USING</literal> and <literal>WITH CHECK</literal> expressions to
41    be modified.  To change other properties of a policy, such as the command
42    to which it applies or whether it is permissive or restrictive, the policy
43    must be dropped and recreated.
44   </para>
45
46   <para>
47    To use <command>ALTER POLICY</command>, you must own the table that
48    the policy applies to.
49   </para>
50
51   <para>
52    In the second form of <command>ALTER POLICY</command>, the role list,
53    <replaceable class="parameter">using_expression</replaceable>, and
54    <replaceable class="parameter">check_expression</replaceable> are replaced
55    independently if specified.  When one of those clauses is omitted, the
56    corresponding part of the policy is unchanged.
57   </para>
58  </refsect1>
59
60  <refsect1>
61   <title>Parameters</title>
62
63   <variablelist>
64    <varlistentry>
65     <term><replaceable class="parameter">name</replaceable></term>
66     <listitem>
67      <para>
68       The name of an existing policy to alter.
69      </para>
70     </listitem>
71    </varlistentry>
72
73    <varlistentry>
74     <term><replaceable class="parameter">table_name</replaceable></term>
75     <listitem>
76      <para>
77       The name (optionally schema-qualified) of the table that the
78       policy is on.
79      </para>
80     </listitem>
81    </varlistentry>
82
83    <varlistentry>
84     <term><replaceable class="parameter">new_name</replaceable></term>
85     <listitem>
86      <para>
87       The new name for the policy.
88      </para>
89     </listitem>
90    </varlistentry>
91
92    <varlistentry>
93     <term><replaceable class="parameter">role_name</replaceable></term>
94     <listitem>
95      <para>
96       The role(s) to which the policy applies.  Multiple roles can be
97       specified at one time.  To apply the policy to all roles,
98       use <literal>PUBLIC</literal>.
99      </para>
100     </listitem>
101    </varlistentry>
102
103    <varlistentry>
104     <term><replaceable class="parameter">using_expression</replaceable></term>
105     <listitem>
106      <para>
107       The <literal>USING</literal> expression for the policy.
108       See <xref linkend="sql-createpolicy"> for details.
109      </para>
110     </listitem>
111    </varlistentry>
112
113    <varlistentry>
114     <term><replaceable class="parameter">check_expression</replaceable></term>
115     <listitem>
116      <para>
117       The <literal>WITH CHECK</literal> expression for the policy.
118       See <xref linkend="sql-createpolicy"> for details.
119      </para>
120     </listitem>
121    </varlistentry>
122
123   </variablelist>
124  </refsect1>
125
126  <refsect1>
127   <title>Compatibility</title>
128
129   <para>
130    <command>ALTER POLICY</command> is a <productname>PostgreSQL</productname> extension.
131   </para>
132  </refsect1>
133
134  <refsect1>
135   <title>See Also</title>
136
137   <simplelist type="inline">
138    <member><xref linkend="sql-createpolicy"></member>
139    <member><xref linkend="sql-droppolicy"></member>
140   </simplelist>
141  </refsect1>
142
143 </refentry>