在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;
输出:
相关用法
- PostgreSQL CREATE ROLE用法及代码示例
- PostgreSQL ALTER ROLE用法及代码示例
- PostgreSQL DROP DATABASE用法及代码示例
- PostgreSQL DROP COLUMN用法及代码示例
- PostgreSQL DROP TABLE用法及代码示例
- PostgreSQL DROP SCHEMA用法及代码示例
- PostgreSQL Drop用法及代码示例
- PostgreSQL DROP TRIGGER用法及代码示例
- PostgreSQL DROP INDEX用法及代码示例
- PostgreSQL DROP TABLESPACE用法及代码示例
注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – DROP ROLE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。