每当在数据库中创建一个对象,所有者可以分配它访问权限。所有者通常是执行创建语句的用户。对于大多数类型的对象,初始状态是,只有所有者(或超级用户)可以修改或删除对象。为了让其他角色或用户使用它,特权或权限必须是理所当然。

为了给用户分配权限,使用 GRANT 命令。

1、授权语法

GRANT命令的基本语法如下:

GRANT privilege [, ...]
ON object [, ...]
TO { PUBLIC | GROUP group | username }
  • privilege 可能的值有: SELECT, INSERT, UPDATE, DELETE, RULE, ALL.

  • object: 名称对象授予访问权限。可能的对象是:表,视图,序列

  • PUBLIC A 缩写形式,代表所有用户。

  • GROUP group: 组授予权限。

  • username: 授予权限的用户的名称. PUBLIC 是一个简短的形式,代表所有用户。

实例

要了解权限,让我们先创建一个USER如下:

testdb=# CREATE USER manisha WITH PASSWORD 'password';
CREATE ROLE

消息CREATE ROLE表明USER“manisha”创建。

考虑表COMPANY 有如下记录:

testdb# select * from COMPANY;
id | name | age | address | salary
----+-------+-----+-----------+--------
| Paul | | California|
| Allen | | Texas |
| Teddy | | Norway |
| Mark | | Rich-Mond |
| David | | Texas |
| Kim | | South-Hall|
| James | | Houston |
( rows)

接下来,让我们的所有权限授予用户“manisha”如下:

testdb=# GRANT ALL ON COMPANY TO manisha;
GRANT

GRANT消息表明,所有的权限被分配给USER。

 2、权限可以使用 REVOKE 命令撤销

  REVOKE命令的基本语法如下:

REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }
  • privilege 可能的值有: SELECT, INSERT, UPDATE, DELETE, RULE, ALL.

  • object: 名称对象授予访问权限。可能的对象是:表,视图,序列

  • PUBLIC 简短形式,代表所有用户.

  • GROUP group: 组授予权限。

  • username: 授予权限的用户的名称. PUBLIC是一个简短的形式,代表所有用户。

  接下来,让我们撤销权限,从USER中的“MANISHA”如下:

testdb=# REVOKE ALL ON COMPANY FROM manisha;
REVOKE

REVOKE消息表明,所有的权限被撤销的USER。

甚至可以删除用户如下:

testdb=# DROP USER manisha;
DROP ROLE

消息DROP ROLE表示用户MANISHA是从数据库中删除。

PG数据库中用户权限的更多相关文章

  1. Django中用户权限模块

    Django中用户权限模块 1 auth模块 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理. auth可以和admin模块配合使用, 快速建立网站的管理系 ...

  2. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  3. Spring Security教程(二):通过数据库获得用户权限信息

    上一篇博客中,Spring Security教程(一):初识Spring Security,我把用户信息和权限信息放到了xml文件中,这是为了演示如何使用最小的配置就可以使用Spring Securi ...

  4. 无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064),及查找SQL Server数据库中用户spid(非SQL Server系统spid)的方法

    今天公司SQL Server数据库无意间变为SINGLE_USER模式了,而且使用如下语句切换回MULTI_USER失败: ALTER DATABASE [MyDB] SET MULTI_USER W ...

  5. 数据库中File权限的危害

    The FILE privilege gives you permission to read and write files on the server host using the LOAD DA ...

  6. mongodb3.0副本集搭建补充~~非admin数据库的用户权限

    之前有搭建mongodb3.0的副本集,不过当时直接使用的admin数据库,用户也是直接给的root. 链接:http://blog.csdn.net/tuzongxun/article/detail ...

  7. MySQL 数据库赋予用户权限操作表

    MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户  一.grant 普通数 ...

  8. MySQL 数据库中用户表中口令登陆设置

    工具:MyEclipse8.5.apache-tomcat-6.0.43.MySQL5.6 问题:项目是同事发给我,正常运行之后,使用MySQL表里的管理员数据登陆时,提示“仅限于非总部工号登录!” ...

  9. Docker容器中用户权限管理

    在Linux系统中有一部分知识非常重要,就是关于权限的管理控制:Linux系统的权限管理是由uid和gid负责,Linux系统会检查创建进程的uid和gid,以确定它是否有足够的权限修改文件,而非是通 ...

随机推荐

  1. java第三章笔记

    java的基本程序设计结构: 1. 声明一个变量之后,必须用赋值语句对变量进行显示初始化,千万不能使用未被初始化的变量. 2.在java中不区分变量的声明与定义. 3.当参与/运算的两个操作数都是整数 ...

  2. linux虚拟机时间同步

    方法来源于网上,但是经过验证是可行的. 作为linux学习的新手,开始学习时总会遇到各种各样的麻烦,每次开机发现自己的虚拟机总是与当前的时间相差几个小时到几天不等,查阅网上经验,我的做法是 1.使用y ...

  3. python基础——2、python应用(随机、异常)——(YZ)

    本次的内容为python的应用,关于随机.异常的应用,均多应用列表. 习题一 1.初始化一个数据集,包括5-10位同学的成绩数据(数据类型不限),数据格式如下: 学号 姓名 Java C语言 Pyth ...

  4. Linux系统安装IonCube的方法详解教程

    ioncube是业内优秀的php加密解密解决方案.和zend guard相比,ioncube具有如下优势: 1. 安全:zend guard的版本不是非常安全,网络上有破解使用zend,下面我们来看I ...

  5. 经典问题----最小生成树(kruskal克鲁斯卡尔贪心算法)

    题目简述:假如有一个无向连通图,有n个顶点,有许多(带有权值即长度)边,让你用在其中选n-1条边把这n个顶点连起来,不漏掉任何一个点,然后这n-1条边的权值总和最小,就是最小生成树了,注意,不可绕成圈 ...

  6. 芯灵思Sinlinx A64开发板Linux内核定时器编程

    开发平台 芯灵思Sinlinx A64 内存: 1GB 存储: 4GB 开发板详细参数 https://m.tb.cn/h.3wMaSKm 开发板交流群 641395230 Linux 内核定时器是内 ...

  7. RDMS三剑客的服务

    @echo off title %1 goto %1 echo Error... echo. goto bexit :orcl_stop rem 顺序:EM.LSN.SID rem echo stop ...

  8. jquery修改input的值,vue获取不到的解决办法

    $("input[name='aa']").val(2333) //触发一下该input的input事件 $("input[name='aa']")[0].di ...

  9. python读写文件\r\n问题

    newline controls how universal newlines mode works (it only applies to text mode). It can be None, ' ...

  10. 前端-JavaScript练习2

    用户输入一个年份,判断这个年是否是闰年. 判断闰年条件: ① 非整百年数除以4,无余为闰,有余不闰: ② 整百年数除以400,无余为闰,有余不闰. 比如: 2000年,整百数年,就要用②公式,除以40 ...