PostgreSQL02-用户管理
创建用户-createuser
创建一个名为 newuser 的非超级用户,newuser 继承自 pg_monitor 系统角色,
只能有 1 个连接,没有创建数据库的权限 ,没有创建用户的权限,并且立即给它设置密码,
/opt/pgsql/bin/createuser -h pghost1 -p 5432 -c 1 -g pg_monitor -D -R -S -P -e newuser
是否超级用户、是否允许创建数据库、是否允许创建用户这三个权限可以使用…
interactive 参数提供交互界面
/opt/pgsql/bin/createuser -h pghost1 -p 54322 -c 1 -g pg_monitor --interavtive -e -P newuser
删除用户-dropuser
/opt/pgsql/bin/dropuser -h pghost1 -p 5432 newuser
一个角色可以继承其他角色的权限从而成为其成员角色(member role)
拥有成员的角色成为组角色(group role)
组角色和普通角色的概念是相对而言的
创建组角色
create role username inherit;(可以将权限继承给成员角色)
create role username noinherit;(不可以)
psql有两个全局变量session_user和current_user,两个变量的值在最开始登陆时是一样的,可以通过以下命令来查看
select session_user,current_user;
set role 和 set session authoriztion
set role 无需superuser权限就可以执行
set role 只会修改current_user的值,不会修改session_user的值
set role 可以让执行角色(一般就是session_user)获取到所扮演角色的所有权限
只用超级用户才能执行set session authorization
set session authorization会修改两个全局变量的值
只要会话不中断,可以反复执行set session authorization
Bob用户获得SUPERUSER权限的方法
create role manager inherit;
CREATE ROLE Bob LOGIN PASSWORD '1234' VALID UNTIL 'infinity';
GRANT Manager TO Bob;
Alter ROLE Manager SUPERUSER;
以Bob身份登陆后执行
SET ROLE Manager;
ALTER ROLE Bob SUPERUSER;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)