zoukankan      html  css  js  c++  java
  • 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)
    
  • 相关阅读:
    创建线程方法&守护线程
    可见性
    线程池
    Callable创建线程
    使用java读取excel数据
    shell 中的操作符
    shell 中的特殊变量
    shell 变量定义使用
    golang 解码未知键的 json 字符串
    golang json 编码解码
  • 原文地址:https://www.cnblogs.com/bingo711x/p/7003489.html
Copyright © 2011-2022 走看看