当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。