postgresql14-用户与角色(二)

介绍

查看

sql 复制代码
SELECT rolname FROM pg_roles;

postgres是系统初始化时默认创建的角色,为超级管理员。

powershell 复制代码
\du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

角色属性

图形化指定熟悉:

sql 复制代码
--均用于创建用户,区别是CREATE USER创建的用户默认有登录特权
CREATE ROLE xxx LOGIN;
CREATE USER xxx;

--超级用户,无权限检查
CREATE ROLE xxx SUPERUSER;
--可创建数据库
CREATE ROLE xxx CREATEDB;
--可创建角色
CREATE ROLE xxx CREATEROLE;
--可用于流复制,同时赋予登录权限
CREATE ROLE xxx REPLICATION LOGIN;
--密码
CREATE ROLE xxx PASSWORD 'yyy';
powershell 复制代码
#登录
psql -h ip地址 -p 5432 -U xxx 数据库名
sql 复制代码
--更改属性
ALTER ROLE xxx NOCREATEROLE;
sql 复制代码
--授权,单权限:SELECT INSERT UPDATE DELETE TRUNCATE
GRANT 单权限或ALL ON 表 TO xxx;

-- 批量授权,某集合内的所有表的查询权限赋给xxx
GRANT SELECT ON ALL TABLES IN SCHEMA 对象集合名称 TO xxx;

--被授权的角色可以将某权限赋给其他角色
GRANT SELECT, INSERT, UPDATE, DELETE ON 表名 TO xxx
WITH GRANT OPTION;


--撤销,以上赋权的逆向操作将GRANT换成REVOKE
REVOKE 单权限或ALL ON 表 TO xxx;

组和成员

sql 复制代码
-- 创建组角色
CREATE ROLE ggg;
--用户uuu添加、移除为组ggg的成员,
GRANT ggg TO uuu;
REVOKE ggg FROM uuu;

CREATE ROLE aaa;
GRANT aaa TO yyy;
--不能又设置循环成员关系:GRANT yyy TO aaa;

-- 删除组角色,关系解除,但用户角色不影响
DROP ROLE ggg;

以tony账户登录,执行:SELECT * FROM employees,提示无权限。

然后以postgresql账户登录,执行:GRANT SELECT ON employees TO managers,对managers组角色进行赋权,因为tongy用户角色是其成员,所以以tony执行:SELECT * FROM employees,依旧提示无权限。

sql 复制代码
--方式一:临时切换成managers,执行SELECT,成功回显,但会临时丢失tony的权限
SET ROLE managers;
SELECT * FROM employees;
-- 恢复,任意执行其中一个
SET ROLE tony;
SET ROLE NONE;
RESET ROLE;

--方式二:设置inherit
-- 针对数据库对象的普通权限可以继承,role的LOGIN、SUPERUSER、CREATEDB、CREATEDB不能被继承。
-- 若要使用必须使用SET ROLE
相关推荐
聊天QQ:4877392785 小时前
永磁同步电机双矢量MPC模型预测电流控制探秘
postgresql
DBA圈小圈13 小时前
【KingbaseES】V8R6查询长事务语句
数据库·postgresql·database
qq_3482318518 小时前
MySQL 与 PostgreSQL对比
数据库·mysql·postgresql
IvorySQL1 天前
瀚高硬核助力 PG 社区:Postgres 19 迎来并行 TID 范围扫描,速度提升 3 倍
数据库·postgresql·开源
❀͜͡傀儡师1 天前
Docker 启动 PostgreSQL 主从架构:实现数据同步
docker·postgresql·架构
赵渝强老师2 天前
【赵渝强老师】国产金仓数据库的逻辑存储结构
数据库·postgresql·国产数据库·kingbase·人大金仓
计算衎2 天前
PostgreSQL数据库docker版本安装以及简单使用和docker-compose.yml启动服务详细介绍
docker·postgresql
计算衎2 天前
基于pgAdmin4 Web UI界面实现连接docker 版PostgreSQL实现增删改查操作
docker·postgresql·docker-compose
脑壳疼___2 天前
ubuntu安装postgresql、postgis、pgrouting
linux·ubuntu·postgresql
IvorySQL3 天前
PostgreSQL 19:超高速聚合的全新突破
数据库·人工智能·postgresql·开源