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
//! PostgreSQL role attribute specifications
//!
//! This module provides type-safe representations of PostgreSQL role attributes
//! used in CREATE ROLE, ALTER ROLE, and CREATE USER statements.
//!
//! # Examples
//!
//! ```
//! use reinhardt_query::dcl::RoleAttribute;
//!
//! // Create role with SUPERUSER privilege
//! let attr = RoleAttribute::SuperUser;
//!
//! // Create role with LOGIN capability
//! let login_attr = RoleAttribute::Login;
//!
//! // Create role with connection limit
//! let conn_limit = RoleAttribute::ConnectionLimit(10);
//! ```
/// PostgreSQL role attribute specifications
///
/// These attributes control various privileges and settings for database roles.
/// They are used in CREATE ROLE, ALTER ROLE, and CREATE USER statements.
///
/// # Privilege Attributes
///
/// - `` `SuperUser` ``/`` `NoSuperUser` `` - Superuser privilege
/// - `` `CreateDb` ``/`` `NoCreateDb` `` - Database creation privilege
/// - `` `CreateRole` ``/`` `NoCreateRole` `` - Role creation privilege
/// - `` `Inherit` ``/`` `NoInherit` `` - Privilege inheritance
/// - `` `Login` ``/`` `NoLogin` `` - Login capability
/// - `` `Replication` ``/`` `NoReplication` `` - Replication privilege
/// - `` `BypassRls` ``/`` `NoBypassRls` `` - Row-level security bypass
///
/// # Configuration Attributes
///
/// - `` `ConnectionLimit` `` - Maximum concurrent connections (-1 = unlimited)
/// - `` `Password` `` - Set role password (automatically encrypted)
/// - `` `EncryptedPassword` `` - Set pre-encrypted password
/// - `` `UnencryptedPassword` `` - Set unencrypted password (not recommended)
/// - `` `ValidUntil` `` - Password expiration timestamp
///
/// # Role Membership Attributes
///
/// - `` `InRole` `` - Add role to specified roles
/// - `` `Role` `` - Grant specified roles to this role
/// - `` `Admin` `` - Grant specified roles with ADMIN OPTION