前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >postgresql自己总结用户管理

postgresql自己总结用户管理

作者头像
双面人
发布2023-02-01 17:42:22
6940
发布2023-02-01 17:42:22
举报
文章被收录于专栏:热爱IT热爱IT

postgresql用户管理:

默认用户:

postgres安装完成后,会自动在操作系统和postgres数据库中分别创建一个名为postgres的用户以及一个同样名为postgres的数据库。

1、组角色:

  一个组角色可以看作一组数据库用户。组角色可以拥有数据库对象(比如表),并可以把这些对象上的权限赋予其他角色,以控制谁拥有访问哪些对象的权限。

--创建角色:

 create role role_emp;

--查看系统中的角色,如:

 select rolname from pg_roles;

--修改组角色名称的语法:

alter role  组角色名称  rename  to  新的组角色名称;

--删除组角色

drop role  组角色的名称;

2、角色的各种权限

①:登录权限:login

 --创建具有登录权限的组角色,如:

  create  role  zhang  login;

②:superuser(超级用户)

 superuser超级用户拥有对数据库操作的最高权限,可以完成对数据库的所有权限检查。

 --创建数据库超级用户,如:

 create role  zhang superuser;

 注意:只有超级用户才能有权限创建超级用户。

③:createdb创建数据库

 --创建具有创建数据库权限的组角色,如

 create role  zhang createdb;

④:createrole创建角色

 --创建具有创建角色权限的角色,如:

 create role zhang createrole;

⑤:口令

在客户认证方法要求与数据库建立连接时,需要口令权限。常见的认证方法包括:password,md5,crypt。

--创建具有口令权限的角色,如:

create role zhang password '123456';

3、账户管理

方式1:在系统命令行中使用createuser命令中创建

createuser username ;如[pguser@localhost ~]$ createuser zhangfeng

方式2:在PostgresSQL命令行中使用CREATE ROLE指令创建

CREATE ROLE rolename;

方式3:在PostgresSQL命令行中使用CREATE USER指令创建

CREATE USER username;

注意:CREATE USER和CREATE ROLE的区别在于,CREATE USER指令创建的用户默认是有登录权限的,而CREATE ROLE没有。

例子:创建用户zhangfeng 密码123456,并且有创建数据库权限和创建角色权限,如:

create user zhangfeng password '123456' createdb createrole;

--删除用户

drop user zhangfeng;

--修改用户密码

alter user zhangfeng  password '123456';

3、组角色和用户权限管理

--对组角色授权:

alter role  角色名  权限1,权限2,,,;

如:给ro_emp角色添加创建数据表和创建角色的权限:

alter role  ro_emp  createdb createrole;

--对用户授权

alter  user  用户名  权限1,权限2,,,;

如:给用户添加创建数据表和创建角色权限,

alter user zhangfeng  createdb createrole;

--收回组角色权限

将role_emp角色的创建数据表和创建角色权限收回,如:

alter role role_emp  nocreatedb  nocreaterole;

--收回用户权限

alter  user  zhangfeng  nocreatedb nocreaterole;

4、数据库权限管理

--修改数据库的拥有者

alter  database  数据库名称  owner  to  拥有者名字;

如:

alter database testdb owner to zhangfeng;

--增加用户的数据表权限

grant 权限  on 数据表  to 用户名;

如:

grant update  on  emp  to zhangfeng;

-----------------------------------

进入

su - postgres;

psql

show data_directory;

/var/lib/pgsql/14/data

\q退出pg

exit退出shell

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档