doc: ALTER DEFAULT PRIVILEGES does not affect inherited roles
[pgsql.git] / doc / src / sgml / ref / alter_policy.sgml
blobfbc262ba20d17ceed509bdda65d18c8802c4c2ed
1 <!--
2 doc/src/sgml/ref/alter_policy.sgml
3 PostgreSQL documentation
4 -->
6 <refentry id="sql-alterpolicy">
7 <indexterm zone="sql-alterpolicy">
8 <primary>ALTER POLICY</primary>
9 </indexterm>
11 <refmeta>
12 <refentrytitle>ALTER POLICY</refentrytitle>
13 <manvolnum>7</manvolnum>
14 <refmiscinfo>SQL - Language Statements</refmiscinfo>
15 </refmeta>
17 <refnamediv>
18 <refname>ALTER POLICY</refname>
19 <refpurpose>change the definition of a row-level security policy</refpurpose>
20 </refnamediv>
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>
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_ROLE | 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>
33 <refsect1>
34 <title>Description</title>
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>
46 <para>
47 To use <command>ALTER POLICY</command>, you must own the table that
48 the policy applies to.
49 </para>
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>
60 <refsect1>
61 <title>Parameters</title>
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>
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>
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>
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>
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>
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>
123 </variablelist>
124 </refsect1>
126 <refsect1>
127 <title>Compatibility</title>
129 <para>
130 <command>ALTER POLICY</command> is a <productname>PostgreSQL</productname> extension.
131 </para>
132 </refsect1>
134 <refsect1>
135 <title>See Also</title>
137 <simplelist type="inline">
138 <member><xref linkend="sql-createpolicy"/></member>
139 <member><xref linkend="sql-droppolicy"/></member>
140 </simplelist>
141 </refsect1>
143 </refentry>