当前位置: 首页 > news >正文

DAV_postgresql_2-user_role

数据库角色用来管理数据库访问权限,简化权限的管理
 用户和角色在整个数据库集簇中是全局性的,不是针对某个单一数据库,只要有足够的权限,用户可以访问所有数据库的对象。

数据库用户可以分为两类
  超级用户 -- postgres
  普通用户 -- 根据需要创


user:拥有login登陆数据库权限的role

role: 可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其 它角色,以控制哪些用户对哪些对象拥有哪些权限

group:不拥有replication/noreplication、connection limit属性的role


在系统命令行使用createuser命令
createuser username


在psql命令行使用create user(role)指令
CREATE user[ROLE] rolename


创建用户实例:
  CREATE USER dav1 SUPERUSER PASSWORD 'u1'; --创建一个具有超级用户权限的 用户
• CREATE USER dav2 CREATEDB PASSWORD 'u2'; --创建一个具有建库权限的用户
• CREATE USER dav_r1 LOGIN; --创建一个具有登录权限的用户,默认值
• CREATE ROLE dav_r2 encrypted PASSWORD '123456' VALID UNTIL '2025-02-27'; --创建一个带有加密密码且具有有效时间的用户
注: 属性LOGIN、SUPERUSER和CREATEROLE被视为特殊权限,它们不会像其它数据库对象的普通权限那样被继承。


创建角色实例:
• CREATE ROLE manager; --创建一个角色
• CREATE ROLE dav createdb; --创建一个具有建库权限的角色
• CREATE ROLE dav_r1 LOGIN; --创建一个具有登录权限的角色,类似于用户
• CREATE ROLE dav_r2 encrypted PASSWORD ‘123456’ VALID UNTIL ‘2025-02-27’; --创建 一个带有加密密码且具有有效时间的角色


查看用户
testdb=> \d


通过数据库字典表来查看用户信息
testdb=> \d pg_use

通过数据库字典表来查看
testdb=> select * from pg_user where usename='dav';


通过数据库字典表来查看角色信息
testdb=> \d pg_role


查看角色信息
testdb=> select rolname ,rolsuper ,rolinherit ,rolcreatedb ,rolcanlogin from pg_roles where rolname='dav_r1';


修改用户实例:
• ALTER USER dav RENAME TO dav3; --修改用户的名字
• ALTER USER dav2 PASSWORD ‘dav123435’; --修改用户的密码
• ALTER USER dav2 CREATEROLE; --修改用户的权限
• ALTER USER dav2 IN DATABASE dav_db RESET ALL; --修改数据库testdb中的参数重 设为默认值


修改角色实例:
• ALTER ROLE dav RENAME TO dav1; --修改角色的名字
• ALTER ROLE dav1 SUPERUSER; --修改角色的权限
• ALTER ROLE dav1 LOGIN; --修改角色的权限


在系统命令行使用dropuser命令
dropuser username;


在psql命令行使用create user(role)指令 drop role rolename;
或 drop user username;
DROP ROLE IF EXISTS role_name;


注意事项:
• 1、只用超级用户能够删除超级用户
• 2、只有具有createrole权限的用户能删除非超级用户
• 3、删除用户前,需要先删除依赖该用户的对象、权限等信息
• 4、任何属于该组角色的对象都必须先被删除或者将对象的所有者赋予其它角色,任何赋予该组角色的权限也都必须被撤消。
• 5、删除组role只会删除组的role本身,组的成员并不会被删除

DROP USER dav;
DROP USER IF EXISTS dav5;
DROP ROLE IF EXISTS dav6;
注意:删除用户和角色所用命令可以通用

相关文章:

  • unity 红点树
  • 网络安全应急响应中主机历史命令被删除 网络安全事件应急响应
  • JAVA面试常见题_基础部分_mybatis面试题
  • Spark RDD持久化机制深度解析
  • sql server 复制从备份初始化数据
  • Ubuntu中dpkg命令和apt命令的关系与区别
  • 大模型算法工程师的技术图谱和学习路径
  • AI 自动化编程:从效率革命到未来教育的革新
  • 请求Geoserver的WTMS服务返回200不返回图片问题-跨域导致
  • 【leetcode hot 100 42】接雨水
  • unity学习57: toggle/选项/切换, 实现单选和多选效果
  • ptaC语言4-3 求给定精度的简单交错序列部分和
  • VScode在Windows11中配置MSVC
  • 为AI聊天工具添加一个知识系统 之125 详细设计之66 逻辑和平台
  • VMware虚拟机系统扩容
  • 【Linux】线程详解
  • 事故02分析报告:慢查询+逻辑耦合导致订单无法生成
  • unity学习60: 滑动条 和 滚动条 滚动区域
  • NocoBase 本周更新汇总:新增路由管理
  • 点云处理入门--PointNetPointNet++论文与代码详解
  • 5.19中国旅游日,上海56家景区景点限时门票半价
  • 普京提议于15日在土耳其恢复俄乌直接谈判
  • 湖南省职业病防治院通报3岁女童确诊“铊中毒”:去年病例,编辑误写为“近日”
  • 陕西永寿4岁女童被蜜蜂蜇伤致死,当地镇政府介入处理
  • 马上评|颜宁“简历打假”的启示
  • 央行:增加支农支小再贷款额度3000亿元