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 做下类似的实验。
这里不再详细描述。
相关推荐
获取文件夹权限 takeown /f * /A /R icacls * /t /grant:r everyone:f
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 ...
MySQL-Grant命令说明,管理用户,分配权限
PostgreSQL角色,特权和策略的GUI 怎么跑 从最新下载dmg文件 或从源代码构建: yarn && yarn package 路线图和变更日志 1.0.0 SQL命令日志 删除连接的可能性 删除政策的可能性 可以编辑表和列的访问权限 ...
$ native-image -jar target/grant-0.1.0-standalone.jar --no-fallback --report-unsupported-elements-at-runtime --initialize-at-build-time --allow-incomplete-classpath 版权和许可 版权所有[2020] [Ronen ...
Grant Simplifying Android Permissions Branch Build Status master Latest Version Gradle usage compile 'com.anthonycr.grant:permissions:1.0' Available from jcenter What can this ...
安装您可以使用以下命令通过composer安装此软件包: composer require coderello/laravel-passport-social-grant 包将自动注册。配置中第一步,您需要实现SocialUserResolverInterface : <?...
webdev-workshops-grant 为美国大使馆赠款的儿童研讨会创建的存储库。
译者 利用球拍轻松解析LC语法并将其翻译成javascript
103年度教育部大专院校预算视觉化103年度教育部大专院校预算视觉化, 使用D3.jsLicense Based on , Dataset came from. The software is released under BSD license, see LICENSE file.
该存储库包含2个子目录: YaaS-Implicit-Grant和YaaS-Implicit-Grant-With-SCI 。 要使用YaaS身份提供程序运行“隐式授予”示例,请打开YaaS-Implicit-Grant目录,并按照README.md文件中包含的说明进行操作。 要...
Windows embeded standard 7
数据定义语言 (DDL) CREATE TABLE:创建表 ALTER TABLE:修改表结构 DROP TABLE:删除表 CREATE INDEX:创建索引 DROP INDEX:删除索引 ...GRANT:授予权限 REVOKE:撤销权限 其他常用语句-详情见文档
用户权限: SQL中使用GRAND和REVOKE语句向用户授予或收回对数据的操作权限。GRANT语句向用户授予权限。REVOKE语句收回已经授予用户的权限 ...如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还
WinExec(pchar('net share ShareName=d:\123 /grant:administrator,full'),1); // WinExec(pchar('cacls d:\a /g everyone:f'),1); // WinExec(pchar('netshare myshare=d:\123'),1); end; end.
SGL(简单授权语言) 这是SGLJavaScript实现。 它可以在node.js和浏览器环境中使用。 还有一个。 SGL是一种简单但灵活的用于根据标准(通常是授权)匹配人员。 它类似于但更简单且面向JSON。...my_rule = { grant :
MySQL的Grant命令详解
t3_case Yapılmasıgerekenler: PostgreSQL库鲁鲁姆 sudo apt-get install libpq-dev python-dev sudo apt-get install postgresql postgresql-contrib 邮编Yapılandırma sudo su postgres ...grant all privi
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" [HKEY_CLASSES_ROOT\exefile\...
示例应用程序演示了PostgreSQL与本地JPA查询结合使用的JSON功能。 入门 系统要求 Java 8 Maven的3 PosygreSQL 9.x 建立资料库 连接到本地psql数据库: psql 执行以下命令: CREATE USER sbje_user WITH ...