zoukankan      html  css  js  c++  java
  • 如何在PostgreSQL中建只读账号

    转:

    如何在PostgreSQL中建只读账号

    Posted on 2014-01-21 22:00:15 by osdba

    在PostgreSQL中并没有CREATE TABLE权限名称,这是与其它数据库不同的一个地方,PostgreSQL是通过控制是否在模式schema中上有CREATE控制用户的能否创建表的权限的,默认安装下,任何用户都有在模式public中CREATE的权限,所以要创建只读账号的第一步,我们要先去除在模式public中的CREATE权限:

    REVOKE  CREATE  ON SCHEMA public from public;
    

    下面的SQL创建了一个名为“readonly”的用户:

    CREATE USER readonly with password 'query';
    

    然后把现有的所有在public这个schema下的表的SELECT权限赋给用户readonly,执行下面的SQL命令:

    GRANT SELECT ON  ALL TABLES IN SCHEMA public TO readonly;
    

    上面的SQL命令只把现有的表的权限给了用户readonly,但如果这之后创建的表,readonly用户还是不能读,需要使用下面的SQL把以后创建的表的SELECT权限也给用户readonly:

    ALTER DEFAULT PRIVILEGES IN SCHEMA public grant select on tables to readonly; 
    

    注意:上面的过程只是把名称为public的schema下的表赋了只读权限,如果想让这个用户能访问其它schema下的表,需要重复执行:

    GRANT SELECT ON  ALL TABLES IN SCHEMA other_schema TO readonly;
    ALTER DEFAULT PRIVILEGES IN SCHEMA other_schema grant select on tables to readonly;
  • 相关阅读:
    对象属性操作-包含kvc---ios
    UserDefault的使用,保存小数据到本地-iOS
    单例模式-ios
    值类型和引用类型
    [fn]焦点图JQ插件版
    [f]区间随机数函数
    css3动画特效集合
    js中的事件代理(委托)
    Nodejs入门【转载】保留备用
    canvas打字效果
  • 原文地址:https://www.cnblogs.com/kuang17/p/6831139.html
Copyright © 2011-2022 走看看