PostgreSQL是一个多用户数据库,可以为不同用户指定允许的权限。

  • 角色
    PostgreSQL使用角色的概念管理数据库访问权限。 根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组数据库用户。 角色可以拥有数据库对象(比如表)以及可以把这些对象上的权限赋予其它角色, 以控制谁拥有访问哪些对象的权限。
    操作角色的语句:
    create role db_role1; /--创建角色/
    drop role db_role1; /--删除角色/
    select rolename from pg_roles; /--查看所有角色/
    /du --在命令格式下查看所有角色的命令

  • 角色的权限
    一个数据库角色可以有很多权限,这些权限定义了角色和拥有角色的用户可以做的事情。
    create role db_role1 LOGIN; --创建具有登录权限的角色db_role1
    create role db_role2 SUPERUSER; --创建具有超级用户权限的角色
    create role db_role3 CREATEDB; --创建具有创建数据库权限的角色
    create role db_role4 CREATEROLE --创建具有创建角色权限的角色
    alter role db_role1 nologin nocreatedb; --修改角色取消登录和创建数据库权限

  • 用户
    其实用户和角色都是角色,只是用户是具有登录权限的角色。
    create user db_user1 password '123'; --创建用户
    create role db_user1 password '123' LOGIN; --同上一句等价
    drop user db_user1; --删除用户
    alter user db_user1 password '123456'; --修改密码
    alter user db_user1 createdb createrole; --对用户授权

  • 赋予角色控制权限
    我们可以使用GRANT 和REVOKE命令赋予用户角色,来控制权限。
    create user db_user1; --创建用户1
    create user db_user2; --创建用户2
    create role db_role1 createdb createrole; --创建角色1
    grant db_role1 to db_user1,db_user2; --给用户1,2赋予角色1,两个用户就拥有了创建数据库和创建角色的权限
    revoke db_role1 from db_user1; --从用户1移除角色1,用户不在拥有角色1的权限

还可以通过查询information_schema.role_table_grants来了解某个用户具有的权限,类似于oralce中dba_tab[sys]_privstest=# select * from information_schema.role_table_grants where grantee='brent';
select * from pg_roles;

select * from pg_user;
select * from information_schema.table_privileges where grantee='cc';
链接:
https://www.jianshu.com/p/b09d0b29faa9
https://blog.csdn.net/su377486/article/details/80672867

PostgreSQL 用户、角色、权限管理的更多相关文章

  1. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

    这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...

  2. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10

    今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求 ...

  3. PostgreSQL 用户和权限管理

    PostgreSQL 用户和权限管理 创建 CREATE ROLE rolename;CREATE USER username;CREATE USER和CREATE ROLE的区别在于,CREATE ...

  4. [.Net MVC] 用户角色权限管理_使用CLK.AspNet.Identity

    项目:后台管理平台 意义:一个完整的管理平台需要提供用户注册.登录等功能,以及认证和授权功能. 一.为何使用CLK.AspNet.Identity 首先简要说明所采取的权限控制方式.这里采用了基于角色 ...

  5. postgresql用户与权限管理

    pg使用角色的概念管理数据库访问权限,角色是一系列相关权限的集合.为了管理方便,通常把一系列先关的权限赋予给一个角色,如果哪个用户需要这些权限,就把这些角色赋予给响应的用户. 由于用户也拥有一系列的相 ...

  6. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理4

    首先先加个区域,名为Admin using System.Web.Mvc; namespace AuthorDesign.Web.Areas.Admin { public class AdminAre ...

  7. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理9

    前两天因有事就没来得及写.今天刚刚好空了.这次写的是对角色和管理员对页面按钮之间的控制.先看页面效果 说明:先根据角色设置好角色的权限,然后管理员在对应的角色下的权限去设置其权限. 在设置角色权限的时 ...

  8. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理6

    接下来先做角色这一板块的(增删改查),首先要新建一个Role控制器,在添加一个RoleList的视图.表格打算采用的是bootstrap的表格. using System; using System. ...

  9. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理7

    做完角色之后接下来做先做页面按钮的增加.删除.修改.这里用到的功能和角色那边是一样的.就不多说了.直接上代码. 后台控制器代码 using AuthorDesign.Web.App_Start.Com ...

  10. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理1

    首先给上项目的整体框架图:,这里我没有使用BLL,因为感觉太烦了就没有去使用. 那么接下来我们首先先去Model层中添加Model. 管理员类: using System; using System. ...

随机推荐

  1. Python中turtle库的使用

    Turtle图形库 Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种: 画笔控制函数 penup():抬起画笔: pendow ...

  2. 【LEETCODE】34、119题,Pascal's Triangle II

    package y2019.Algorithm.array; import java.util.ArrayList; import java.util.List; /** * @ProjectName ...

  3. 解决windows 激活问题

    解决windows 激活问题 下载 然后 搞定  重启

  4. SAS学习笔记53 RTF单个字符标记设置

    如何设置RTF中某一个字斜体而之后的字不斜体.下图中第一个P值都斜体并且加粗,第二个P值只有P进行了斜体和加粗

  5. 稀疏检出-使用git检索出仓库里的某一个目录文件,而不是整个仓库的所有文件

    具体工作意义是从某一个Git仓库 克隆时,只克隆检测出这个仓库里的某些文件夹内容,而不是跟平常那样把整个仓库的内容都克隆下来 从1.7.0版本开始git提供稀疏检出的功能.所谓稀疏检出就是本地版本库检 ...

  6. Bigdecimal除法异常

    1.异常信息摘要(详细请见文末): java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represe ...

  7. element-ui 文件上传

    <el-form-item> <el-upload ref="upload" class="upload-demo" :action=&quo ...

  8. 2602978 - [How to] Content Synchronization between SLDs

    http://47.101.174.212:52000/sld http://47.101.176.136:56000/sld Symptom As described in Planning Gui ...

  9. 【JUC】1.线程

    先复习一下线程的东西: Java线程的内存模型 主内存与工作内存 Java内存模型主要定义了程序中各个变量的访问规则 所有的变量都在主内存,Java堆(线程共享) 每条线程都有自己的工作内存,虚拟机栈 ...

  10. 实现数字转换RMB大写~

    实现的功能是将数字“673”转换成“陆佰柒拾叁”    “3681”转换成“叁仟陆佰捌拾壹”     “8007”转换成“捌仟零柒” 主要使用了数组和循环来实现 代码雏形 package com.te ...