`
m635674608
  • 浏览: 5028529 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Grant: Postgresql 9.0 得到增强

    博客分类:
  • sql
 
阅读更多

    Postgresql9.0 在 grant 命令上得到了增强。它提供一条 grant命令,
能够将某个schema下的全部表赋给用户, 这在工作中带来了便利。

--来自PG9.0官网文档,语法如下
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON { [ TABLE ] table_name [, ...]
         | ALL TABLES IN SCHEMA schema_name [, ...] }
    TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

      其中 "ALL TABLES IN SCHEMA schema_name" 就为上面的这种用法。今天正好有项目
有查询需求,需要新增一查询帐号,能够查询生产库上所有的业务表。以下是详细步骤

1. 开通数据库连接权限
skytf=#grant connect on database skytf to select_csl;
GRANT

2. 开通数据库 skytf下业务SCHEMA的使用权限
grant select on  all tables in schema skytf        to select_csl;

3 给查询帐号 select_csl赋予 schemal skytf 下所有表的只读权限
skytf=# grant select on all tables in schema skytf to select_csl;
GRANT

4. 检查权限是否已加    
skytf=> select grantor,grantee,table_schema,table_name from information_schema.table_privileges where grantee='select_csl'
and table_schema='skytf' order by table_name ;
 grantor |  grantee   | table_schema |         table_name          
---------+------------+--------------+-----------------------------
 skytf     | select_csl | skytf        | skytf_user
 skytf     | select_csl | skytf        | albumcheck_log
 skytf     | select_csl | skytf        | building_guest_log
 ..
 ..
 省略
(15 rows)

     上面部分结果已经省略,从结果可以看出 帐号select_csl 获得了skytf下所有的表的查询权限。

5.官网解释
There is also an option to grant privileges on all objects of the same type within one or more schemas. T
his functionality is currently supported only for tables, sequences, and functions 
(but note that ALL TABLES is considered to include views).

  上面说 tables,sequences,functions 支持这种用法。
  
6.0更多用法:来自官网
GRANT { { USAGE | SELECT | UPDATE }
    [,...] | ALL [ PRIVILEGES ] }
    ON { SEQUENCE sequence_name [, ...]
         | ALL SEQUENCES IN SCHEMA schema_name [, ...] }
    TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]


GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON { FUNCTION function_name ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) [, ...]
         | ALL FUNCTIONS IN SCHEMA schema_name [, ...] }
    TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

总结: Postgresql 提供的 " ALL ... IN SCHEMA schema_name " 用法使给DBA在日常工作中只需要一条命令
            就能给指定用户授权,打破了传统的每张表单独赋权的模式。
        
           上面只演示 tables 的授权方法,有兴趣的朋友可能对 functions 和 sequences 做下类似的实验。
           这里不再详细描述。

分享到:
评论

相关推荐

    linux postgresql-9.5.4

    版本9.5.4是 PostgreSQL 的一个稳定版本,它提供了许多增强功能和优化,以提升性能、可靠性和用户体验。 ### 1. PostgreSQL 9.5.4特性 - **并行查询**:这是9.5版本引入的一个重大改进,允许在某些查询中执行并行...

    postgresql-12-A4_postgresql手册_

    1. JSON支持:PostgreSQL 12增强了对JSON数据类型的处理,包括JSONB的高效存储和查询。 2. 并行查询:在适当配置下,PostgreSQL 12能执行并行扫描、聚合和排序,显著提高大型查询的处理速度。 3. 增强的安全性:...

    MySQL-Grant命令说明

    ### MySQL Grant 命令详解:用户权限管理与分配 #### 概述 在数据库管理中,权限控制是一项至关重要的任务,它确保了数据的安全性和完整性。MySQL通过`GRANT`命令提供了强大的权限管理功能,允许数据库管理员为...

    postgresql-9.6.3.tar.gz 下载

    6. **数据类型与表**:PostgreSQL支持丰富的数据类型,包括基本类型(如整数、浮点数、字符串)和复杂类型(如数组、JSON、XML)。创建表用`CREATE TABLE`语句,可指定列名、数据类型及约束条件。 7. **SQL查询**:...

    PostgreSql_dll

    7. **扩展性**:PostgreSQL支持插件式架构,允许添加自定义的数据类型、函数和操作符,甚至完整的存储过程语言,如PL/pgSQL和PL/Python。 8. **复制与高可用性**:通过流复制或逻辑复制,可以实现PostgreSQL的主备...

    postgresql-11.0.tar.gz

    5. **配置文件**:PostgreSQL的主要配置文件是`postgresql.conf`,其中包含了数据库的许多设置,如监听地址、端口、缓存大小等。修改配置后需重启服务使改动生效。 6. **用户与权限**:PostgreSQL的默认管理员用户...

    postgresql-12.1.tar.gz

    - **并行查询增强**:PostgreSQL 12进一步优化了并行查询,提高了大数据量处理的速度。 - **分区表改进**:支持范围和列表分区,使数据管理更为灵活。 - **窗口函数性能提升**:对窗口函数进行了优化,提升了执行...

    PostgreSQL 10 DBA菜谱源码

    5. **备份与恢复**:PostgreSQL提供了pg_dump和pg_restore工具进行数据库备份和恢复,源码可能展示如何使用它们进行全量备份、增量备份和时间点恢复。 6. **安全性与权限管理**:学习如何设置用户、角色,分配权限...

    PostgreSQL_Tuts:PostgreSQL教程

    - 死锁处理:PostgreSQL中的死锁检测和解决策略。 7. **视图和存储过程** - 视图:创建和使用视图,作为虚拟表简化复杂查询。 - 存储过程:编写和调用PL/pgSQL或其他支持的编程语言编写的存储过程。 8. **复制...

    获取文件夹权限

    获取文件夹权限 takeown /f * /A /R icacls * /t /grant:r everyone:f

    POSTGRESQL服务器编程

    3. **数据类型**:PostgreSQL拥有丰富的数据类型,如整数、浮点数、字符串、日期/时间、布尔值,以及数组、枚举、JSON、XML等复杂类型,理解这些类型及其使用场景至关重要。 4. **事务处理**:PostgreSQL支持ACID...

    Android代码-安卓6.0权限管理

    Grant Simplifying Android Permissions Gradle usage compile 'com.anthonycr.grant:permissions:1.0' Available from jcenter What can this library do? It can request all your declared permissions in a ...

    PostgreSQL数据库实战培训课程(速成版).rar

    3. 数据类型:PostgreSQL支持多种数据类型,包括数值类型、字符串类型、日期时间类型以及自定义类型。理解这些数据类型的应用场景,有助于你更高效地组织和存储数据。 4. 索引与视图:索引可以显著提高查询速度,...

    postgresql官方手册的中文版

    PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),由全球开发者团队"The PostgreSQL Global Development Group"维护和开发。它的设计理念是提供高度的可扩展性和数据完整性,支持标准SQL语法,并且在性能...

    转:LINUX POSTGRESQL测试库配置

    在Linux环境中配置PostgreSQL测试库是一项重要的任务,它涉及到数据库的安装、配置、以及测试环境的搭建。PostgreSQL是一款开源的关系型数据库管理系统,以其高度稳定性和丰富的功能深受开发者喜爱。以下将详细介绍...

    guide_du_debutant_postgresql:PostgreSQL 初学者指南的来源和 PDF

    **PostgreSQL 初学者指南详解** PostgreSQL 是一个开源的对象关系型数据库管理系统(ORM DBMS),因其强大、稳定和灵活性而备受赞誉。对于初学者来说,掌握 PostgreSQL 的基础知识至关重要,因为这将为他们进入...

    PostgreSQL2

    1. 关系数据库模型:PostgreSQL2基于关系数据库理论,遵循ACID(原子性、一致性、隔离性、持久性)原则,保证了数据的完整性和一致性。 2. SQL支持:完全支持SQL92及后续标准,提供丰富的SQL命令用于数据查询、更新...

    计算机软件-编程源码-PostgreSQL v7.3 官方中文用户手册(HTML).zip

    4. **数据类型**:PostgreSQL支持多种数据类型,包括基本类型(如整数、浮点数、字符串、日期/时间)和复杂类型(如数组、JSON、HSTORE)。理解这些类型及其用法能优化数据存储和查询性能。 5. **查询语言SQL**:...

    postgresql-9.6.0.tar.gz

    8. **安全性与权限**:PostgreSQL支持复杂的权限系统,包括角色、权限、继承等,通过GRANT和REVOKE命令控制访问权限。 9. **备份与恢复**:使用`pg_dump`进行数据库备份,`pg_restore`进行恢复。可以利用`pg_...

Global site tag (gtag.js) - Google Analytics