summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/man7/DROP_ROLE.7
blob: f64c121e89066008bb3db4eb905da18fb0595087 (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
'\" t
.\"     Title: DROP ROLE
.\"    Author: The PostgreSQL Global Development Group
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 2023
.\"    Manual: PostgreSQL 15.5 Documentation
.\"    Source: PostgreSQL 15.5
.\"  Language: English
.\"
.TH "DROP ROLE" "7" "2023" "PostgreSQL 15.5" "PostgreSQL 15.5 Documentation"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
DROP_ROLE \- remove a database role
.SH "SYNOPSIS"
.sp
.nf
DROP ROLE [ IF EXISTS ] \fIname\fR [, \&.\&.\&.]
.fi
.SH "DESCRIPTION"
.PP
\fBDROP ROLE\fR
removes the specified role(s)\&. To drop a superuser role, you must be a superuser yourself; to drop non\-superuser roles, you must have
CREATEROLE
privilege\&.
.PP
A role cannot be removed if it is still referenced in any database of the cluster; an error will be raised if so\&. Before dropping the role, you must drop all the objects it owns (or reassign their ownership) and revoke any privileges the role has been granted on other objects\&. The
\fBREASSIGN OWNED\fR
and
\fBDROP OWNED\fR
commands can be useful for this purpose; see
Section\ \&22.4
for more discussion\&.
.PP
However, it is not necessary to remove role memberships involving the role;
\fBDROP ROLE\fR
automatically revokes any memberships of the target role in other roles, and of other roles in the target role\&. The other roles are not dropped nor otherwise affected\&.
.SH "PARAMETERS"
.PP
IF EXISTS
.RS 4
Do not throw an error if the role does not exist\&. A notice is issued in this case\&.
.RE
.PP
\fIname\fR
.RS 4
The name of the role to remove\&.
.RE
.SH "NOTES"
.PP
PostgreSQL
includes a program
\fBdropuser\fR(1)
that has the same functionality as this command (in fact, it calls this command) but can be run from the command shell\&.
.SH "EXAMPLES"
.PP
To drop a role:
.sp
.if n \{\
.RS 4
.\}
.nf
DROP ROLE jonathan;
.fi
.if n \{\
.RE
.\}
.SH "COMPATIBILITY"
.PP
The SQL standard defines
\fBDROP ROLE\fR, but it allows only one role to be dropped at a time, and it specifies different privilege requirements than
PostgreSQL
uses\&.
.SH "SEE ALSO"
CREATE ROLE (\fBCREATE_ROLE\fR(7)), ALTER ROLE (\fBALTER_ROLE\fR(7)), SET ROLE (\fBSET_ROLE\fR(7))