用户需求:新建一个用户B,需要能够查询A用户的所有表,并且对以后新建的表也要有select权限。

对于现有的表可以通过动态sql批量进行授权,但是未来新建的表要如何进行授权呢?

查询了帮助文档发现通过alter default privileges命令可以实现。

  • 命令描述

    ALTER DEFAULT PRIVILEGES允许你设置将被应用于未来要创建的对象的特权(它不会影响分配给已经存在的对象的特权)。

*语法

ALTER DEFAULT PRIVILEGES

[ FOR { ROLE | USER } target_role [, ...] ]

[ IN SCHEMA schema_name [, ...] ]

abbreviated_grant_or_revoke

更具体语法请看官方帮助文档:

https://help.kingbase.com.cn/v9/development/sql-plsql/sql-quick/SQL_Statements_1.html?highlight=alter default privileges#alter-default-privileges

  • 测试

test=# \c test user1

您现在已经连接到数据库 "test",用户 "user1".

test=> create table t_user1 (id int);

CREATE TABLE

test=> insert into t_user1 values (2);

INSERT 0 1

test=> \c test system

您现在已经连接到数据库 "test",用户 "system".

test=# create role user2 with login;

CREATE ROLE

test=# alter role user2 with password '123456';

ALTER ROLE

test=# create schema user2 authorization user2;

CREATE SCHEMA

test=> GRANT USAGE ON SCHEMA user1 to user2;

GRANT

test=> ALTER DEFAULT PRIVILEGES IN SCHEMA user1 GRANT SELECT ON TABLES TO user2;

ALTER DEFAULT PRIVILEGES

test=> \c test user1

您现在已经连接到数据库 "test",用户 "user1".

test=> create table t2_user1 (id int);

CREATE TABLE

test=> insert into t2_user1 values (3);

INSERT 0 1

test=> \c test user2

您现在已经连接到数据库 "test",用户 "user2".

test=> select * from user1.t2_user1; --可以查询授权后新建的表

id


3

(1 行记录)

test=> select * from user1.t_user1; --对旧的对象权限没有影响

错误: 对表 t_user1 权限不够

KingbaseES特殊权限介绍的更多相关文章

  1. 关于android 1.6全部的权限介绍

    原文:关于android 1.6全部的权限介绍 我们在 AndroidManifest.xml里需要对一些软件需要的操作做一些权限的声明,比如我们的软件有发送短信的功能,那么就需要在 AndroidM ...

  2. Android 6.0及以上版本号的执行时权限介绍

    执行时权限(Runtime Permission)是Android 6.0( 代号为 Marshmallow,API版本号为 23)及以上版本号新增的功能.相比于以往版本号,这是一个较大变化. 本文将 ...

  3. Hive权限介绍

    一.开启权限 眼下hive支持简单的权限管理,默认情况下是不开启.这样全部的用户都具有同样的权限.同一时候也是超级管理员.也就对hive中的全部表都有查看和修改的权利,这样是不符合一般数据仓库的安全原 ...

  4. mysql 之权限介绍

    转自:http://tech.it168.com/a2010/0114/837/000000837456_all.shtml 一.MySQL授权表概述首先从全局开始,如果全局的是允许的,即在 user ...

  5. Linux编程 16 文件权限(组管理 groupadd, groupmod,文件权限介绍)

    一.用户组 前面章节知道用户账户在控制单个用户安全性方面很好,但涉及到共享资源或把用户类型分组时,组概念就出来了. 组权限允许多个用户对系统中的对象(比如文件,目录,设备等)共享一组共用的权限. 在c ...

  6. KingbaseES 全文检索功能介绍

    KingbaseES 内置的缺省的分词解析器采用空格分词,因为中文的词语之间没有空格分割,所以这种方法并不适用于中文.要支持中文的全文检索需要额外的中文分词插件:zhparser and sys_ji ...

  7. KingbaseES DBLink 扩展介绍

    DBLink 扩展插件功能与 Kingbase_FDW 类似,用于远程访问KingbaseES 数据库.相比于Kingbase_FDW,DBLink 功能更强大,可以执行DML,还可以通过 begin ...

  8. MySQL的用户和权限介绍

    一.关于MySQL权限的几点常识: 1.MySQL的权限系统主要用来验证用户的操作权限. 2.在MySQL内部,权限信息存放在MySQL数据库的granttable里.当mysql启动后,grantt ...

  9. linux系统的权限介绍

    让我们用t o u c h命令创建一个文件:$ touch myfile现在对该目录使用ls -l命令: 我们已经创建了一个空文件,正如我们所希望的那样,第一个横杠告诉我们该文件是一个普通文件.你将会 ...

  10. chmod chown llinux文件及目录的权限介绍

    linux 文件或目录的读.写.执行权限说明: chmod :设置文件或目录权限. u:所有者 g:所在组 o:其他组 a:所有人(u.g.o的总和) chmod  -R  文件1/文件2…..    ...

随机推荐

  1. 【Unity3D】缩放、平移、旋转场景

    1 前言 ​ 场景缩放.平移.旋转有两种实现方案,一种是对场景中所有物体进行同步变换,另一种方案是对相机的位置和姿态进行变换. ​ 对于方案一,如果所有物体都在同一个根对象下(其子对象或孙子对象),那 ...

  2. org.apache.http.client.ClientProtocolException: URI does not specify a valid host name:localhost:xxx

    今天部署应用的时候遇到的,总结一下我知道的有2个原因: 1.地址前要加http://  这就是标题报错的原因,他用的是localhost:xxx 2.地址本身拼错了也会报这个,例如地址:http:// ...

  3. .Net Core Entity Framework Core 的基础封装

    上篇讲到  c# Unit of Work 知识分享时,对于创建DBContext 的封装没有讲到,这次分享跟大家 public interface IDbContextFactory { DbCon ...

  4. 探秘C语言数组:解锁高效数据管理与多维空间编程技巧"

    欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 引言 前面贝蒂给大家介绍了选择结构与循环结构,今天,贝蒂准备给大家介绍C语言中一个非常重要 ...

  5. 2021-10-11 vue的第三方组件二次封装

    原理 v-bind="$attrs"继承所有属性和props. v-on="$listeners"继承所有的方法. <template> <d ...

  6. xadmin后台的安装及配置使用

    安装 pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 在settings.py中注册如下应用 INSTALLED_ ...

  7. NebulaGraph is nothing without you | 社区 2023 年度人物合集

    在去年的年度人物 回顾中,我们看到了形形色色的人们,他们当中有帮 NebulaGraph 捉 bug 的小能手,也有通过用回复来解答他人疑惑的启蒙者-在今年(2023 年),我们这个整点不一样的,将镜 ...

  8. Linux_Centos_yum报错总结

    ​ 此篇适用于yum报错[尝试其他镜像]并且[curl 外网]不通的情况,此时一般考虑是网络的问题 一,出现的报错信息: 此时测试curl / ping www.baidu.com会发现无法连通 二, ...

  9. Java 数组查找

    1 //要找的数 - 数组中的第一个元素 / 最大的数 - 第一个元素 2 //数组的查找(线性查找 二分法查找) 3 //线性查找: 4 //equals 5 6 String dest = &qu ...

  10. Python中那些简单又好用的特性和用法

    Python作为我的主力语言帮助我开发了许多DevOps运维自动化系统,这篇文章总结几个我在编写Python代码过程中用到的几个简单又好用的特性和用法,这些特性和用法可以帮助我们更高效地编写Pytho ...