PostgreSQL权限笔记

参考博客:http://www.cnblogs.com/stephen-liu74/archive/2012/05/18/2302639.html

PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。

数据库角色

CREATE ROLE role_name;    #创建角色
DROP ROLE role_name;        #删除角色
SELECT usename FROM pg_role;    #查看角色
\du
alter user user_name with password 'new password';

角色属性

一个数据库角色可以有一系列属性,这些属性定义他的权限,以及与客户认证系统的交互。权限分为以下几种:LOGIN、SUPERUSER、CTEATEDB、CREATEROLE

- 登录权限

CREATE ROLE name LOGIN PASSWORD '123456‘;
CREATE USER name PASSWORD '123456';

- 超级用户

数据库的超级用户拥有该数据库的所有权限。创建超级用户必须是以超级用户的身份执行以下命令:

CREATE ROLE name SUPERUSER;

- 创建数据库

CREATE ROLE name CREATEDB;

- 创建角色

CREATE ROLE name CREATEROLE;

数据库对象权限

数据库对象在被创建时都会被赋予一个所有者,通常而言,所有者就是执行对象创建语句的角色。对于大多数类型的对象,其初始状态是只有所有者(或超级用户)可以对该对象做任何事情。如果要允许其它用户可以使用该对象,必须赋予适当的权限。

SELECT、INSERT、UPDATE、DELETE、RULE、REFERENCES、TRIGGER、CREATE、TEMPORARY、EXECUTE、USAGE11种权限。

GRANT UPDATE ON table_name TO user_name;

我们也可以用特殊的名字PUBLIC把对象的权限赋予系统中的所有角色。在权限声明的位置上写ALL,表示把适用于该对象的所有权限都赋予目标角色。

 REVOKE ALL ON accounts FROM PUBLIC;    #对所有角色(PUBLIC)撤销在accounts对象上的所有权限(ALL)
posted @   bingo711x  阅读(264)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目
点击右上角即可分享
微信分享提示