Skip to main content

RoleAttribute

Enum RoleAttribute 

Source
pub enum RoleAttribute {
Show 22 variants SuperUser, NoSuperUser, CreateDb, NoCreateDb, CreateRole, NoCreateRole, Inherit, NoInherit, Login, NoLogin, Replication, NoReplication, BypassRls, NoBypassRls, ConnectionLimit(i32), Password(String), EncryptedPassword(String), UnencryptedPassword(String), ValidUntil(String), InRole(Vec<String>), Role(Vec<String>), Admin(Vec<String>),
}
Expand description

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

Variants§

§

SuperUser

SUPERUSER privilege - can override all access restrictions

§

NoSuperUser

NOSUPERUSER - explicitly deny superuser privilege

§

CreateDb

CREATEDB privilege - can create databases

§

NoCreateDb

NOCREATEDB - cannot create databases

§

CreateRole

CREATEROLE privilege - can create roles

§

NoCreateRole

NOCREATEROLE - cannot create roles

§

Inherit

INHERIT - automatically inherit privileges of roles it is a member of

§

NoInherit

NOINHERIT - do not automatically inherit privileges

§

Login

LOGIN - role can log in (required for users)

§

NoLogin

NOLOGIN - role cannot log in (typical for group roles)

§

Replication

REPLICATION - role can initiate streaming replication

§

NoReplication

NOREPLICATION - role cannot initiate replication

§

BypassRls

BYPASSRLS - role bypasses row-level security policies

§

NoBypassRls

NOBYPASSRLS - role is subject to row-level security

§

ConnectionLimit(i32)

CONNECTION LIMIT - maximum concurrent connections (-1 = unlimited)

§

Password(String)

PASSWORD - set role password (will be encrypted by PostgreSQL)

§

EncryptedPassword(String)

ENCRYPTED PASSWORD - set pre-encrypted password

§

UnencryptedPassword(String)

UNENCRYPTED PASSWORD - set unencrypted password (deprecated, not recommended)

§

ValidUntil(String)

VALID UNTIL - password expiration timestamp (ISO 8601 format recommended)

§

InRole(Vec<String>)

IN ROLE - add this role to the specified roles

§

Role(Vec<String>)

ROLE - grant the specified roles to this role

§

Admin(Vec<String>)

ADMIN - grant the specified roles with ADMIN OPTION

Trait Implementations§

Source§

impl Clone for RoleAttribute

Source§

fn clone(&self) -> RoleAttribute

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RoleAttribute

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for RoleAttribute

Source§

fn eq(&self, other: &RoleAttribute) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for RoleAttribute

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.