當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


PostgreSQL DROP ROLE用法及代碼示例

在PostgreSQL中刪除角色刪除角色的語句。

用法:DROP ROLE [IF EXISTS] target_role;

讓我們分析以上語法:

  • 在 DROP ROLE 關鍵字後添加要刪除的角色名稱。
  • 使用 IF EXISTS 選項可用於在請求刪除不存在的角色時發出通知而不是錯誤。

需要注意的是,要刪除超級用戶角色,必須是超級用戶。要刪除非超級用戶角色,您需要使用 CREATE ROLE 語句創建角色的 previlage。如果我們不小心嘗試刪除已在任何數據庫中引用的角色,PostgreSQL 將引發錯誤。在這種情況下,必須采取兩個步驟:

  • 您需要使用 DROP OWNED 語句刪除該特定角色擁有的數據庫對象,或者使用 REASSIGN OWNED 語句將數據庫對象的所有權重新分配給另一個角色。
  • 您還需要撤銷授予該角色的所有其他權限。

換句話說,完全按照下麵的語句刪除角色:

REASSIGN OWNED BY target_role TO another_role;
DROP OWNED BY target_role;


DROP ROLE target_role;

例:



在這個例子中:

  • 在這裏,我們將創建一個名為 geeksforgeeks 的新角色,並使用該角色創建一個名為員工的表。
  • 然後,我們將展示如何從 PostgreSQL 數據庫服務器中刪除角色 geeksforgeeks 的分步指南。

第一的,登錄到 PostgreSQL 使用Postgres角色:

psql -U postgres

二、創建一個名為的新角色極客使用以下語句:

create role geeksforgeeks with login password 'geeks12345';

三、授予已創建 特權極客使用以下語句:

alter role geeksforgeeks createdb;

四、新建一個數據庫叫銷售量

create database sales;

現在,使用 PostgreSQL 數據庫服務器登錄極客作用如下圖:

psql -U geeksforgeeks -W sales

向 Sales 數據庫添加一個新表:

create table employee(
    customer_id int generated always as identity,
    customer_name varchar(150) not null,
    primary key(employee_id)
);

現在使用以下命令顯示 sales 數據庫中的表列表:

\du

這將顯示以下結果:

現在登錄為Postgres並嘗試放棄 geeksforgeeks 角色:

drop role geeksforgeeks;

輸出:

相關用法


注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 PostgreSQL – DROP ROLE。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。