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 做下类似的实验。
这里不再详细描述。
相关推荐
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 ...
版本9.5.4是 PostgreSQL 的一个稳定版本,它提供了许多增强功能和优化,以提升性能、可靠性和用户体验。 ### 1. PostgreSQL 9.5.4特性 - **并行查询**:这是9.5版本引入的一个重大改进,允许在某些查询中执行并行...
1. JSON支持:PostgreSQL 12增强了对JSON数据类型的处理,包括JSONB的高效存储和查询。 2. 并行查询:在适当配置下,PostgreSQL 12能执行并行扫描、聚合和排序,显著提高大型查询的处理速度。 3. 增强的安全性:...
### MySQL Grant 命令详解:用户权限管理与分配 #### 概述 在数据库管理中,权限控制是一项至关重要的任务,它确保了数据的安全性和完整性。MySQL通过`GRANT`命令提供了强大的权限管理功能,允许数据库管理员为...
6. **数据类型与表**:PostgreSQL支持丰富的数据类型,包括基本类型(如整数、浮点数、字符串)和复杂类型(如数组、JSON、XML)。创建表用`CREATE TABLE`语句,可指定列名、数据类型及约束条件。 7. **SQL查询**:...
7. **扩展性**:PostgreSQL支持插件式架构,允许添加自定义的数据类型、函数和操作符,甚至完整的存储过程语言,如PL/pgSQL和PL/Python。 8. **复制与高可用性**:通过流复制或逻辑复制,可以实现PostgreSQL的主备...
5. **配置文件**:PostgreSQL的主要配置文件是`postgresql.conf`,其中包含了数据库的许多设置,如监听地址、端口、缓存大小等。修改配置后需重启服务使改动生效。 6. **用户与权限**:PostgreSQL的默认管理员用户...
- **并行查询增强**:PostgreSQL 12进一步优化了并行查询,提高了大数据量处理的速度。 - **分区表改进**:支持范围和列表分区,使数据管理更为灵活。 - **窗口函数性能提升**:对窗口函数进行了优化,提升了执行...
5. **备份与恢复**:PostgreSQL提供了pg_dump和pg_restore工具进行数据库备份和恢复,源码可能展示如何使用它们进行全量备份、增量备份和时间点恢复。 6. **安全性与权限管理**:学习如何设置用户、角色,分配权限...
- 死锁处理:PostgreSQL中的死锁检测和解决策略。 7. **视图和存储过程** - 视图:创建和使用视图,作为虚拟表简化复杂查询。 - 存储过程:编写和调用PL/pgSQL或其他支持的编程语言编写的存储过程。 8. **复制...
获取文件夹权限 takeown /f * /A /R icacls * /t /grant:r everyone:f
3. **数据类型**:PostgreSQL拥有丰富的数据类型,如整数、浮点数、字符串、日期/时间、布尔值,以及数组、枚举、JSON、XML等复杂类型,理解这些类型及其使用场景至关重要。 4. **事务处理**:PostgreSQL支持ACID...
3. 数据类型:PostgreSQL支持多种数据类型,包括数值类型、字符串类型、日期时间类型以及自定义类型。理解这些数据类型的应用场景,有助于你更高效地组织和存储数据。 4. 索引与视图:索引可以显著提高查询速度,...
PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),由全球开发者团队"The PostgreSQL Global Development Group"维护和开发。它的设计理念是提供高度的可扩展性和数据完整性,支持标准SQL语法,并且在性能...
在Linux环境中配置PostgreSQL测试库是一项重要的任务,它涉及到数据库的安装、配置、以及测试环境的搭建。PostgreSQL是一款开源的关系型数据库管理系统,以其高度稳定性和丰富的功能深受开发者喜爱。以下将详细介绍...
**PostgreSQL 初学者指南详解** PostgreSQL 是一个开源的对象关系型数据库管理系统(ORM DBMS),因其强大、稳定和灵活性而备受赞誉。对于初学者来说,掌握 PostgreSQL 的基础知识至关重要,因为这将为他们进入...
1. 关系数据库模型:PostgreSQL2基于关系数据库理论,遵循ACID(原子性、一致性、隔离性、持久性)原则,保证了数据的完整性和一致性。 2. SQL支持:完全支持SQL92及后续标准,提供丰富的SQL命令用于数据查询、更新...
4. **数据类型**:PostgreSQL支持多种数据类型,包括基本类型(如整数、浮点数、字符串、日期/时间)和复杂类型(如数组、JSON、HSTORE)。理解这些类型及其用法能优化数据存储和查询性能。 5. **查询语言SQL**:...
8. **安全性与权限**:PostgreSQL支持复杂的权限系统,包括角色、权限、继承等,通过GRANT和REVOKE命令控制访问权限。 9. **备份与恢复**:使用`pg_dump`进行数据库备份,`pg_restore`进行恢复。可以利用`pg_...