用户需求:新建一个用户 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/stage-api/profile/document/kes/v8r6/html/development/server-programming/sql/ref-sql/sql-alterdefaultprivileges.html

  • 测试

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 如何把一个schema下的所有对象访问权限授权给其他用户的更多相关文章

  1. Linux 下指定端口开放访问权限

    Linux 下指定端口开放访问权限 作者:Grey 原文地址: 博客园:Linux 下指定端口开放访问权限 CSDN:Linux 下指定端口开放访问权限 环境 CentOS 系和 Debian 系的防 ...

  2. Linux下进程的文件访问权限

    本文转自 http://blog.csdn.net/chosen0ne/article/details/10581883 对进程校验文件访问权限包括两个部分,一是确定进程的角色(属于哪个用户或者组), ...

  3. [Z] Linux下进程的文件访问权限

    原文链接:http://blog.csdn.net/chosen0ne/article/details/10581883 对进程校验文件访问权限包括两个部分,一是确定进程的角色(属于哪个用户或者组), ...

  4. 继承下public,protected,private访问权限

    C++中派生类对基类成员的访问形式主要有以下两种: 1.内部访问:由派生类中新增成员对基类继承来的成员的访问. 2.对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问.今天给大家介绍在 ...

  5. 【netcore基础】wwwroot下静态资源文件访问权限控制

    本文参考如下博问 https://q.cnblogs.com/q/107836 业务要求 上传的资源文件(.mp3 .mp4等)只有购买了之后才能有权限访问,所以对上传的资源文件目录进行访问权限控制 ...

  6. Ubuntu下开启mysql远程登陆权限

    在腾讯云上租了个云服务器,并且安装启动了mysql. 这时候用本地的mysql workbench去连接就会报错,提示无法成功连接. 其实这是因为没有开启账户的远程登陆权限.那么下面就开启一下: 1. ...

  7. llinux下mysql建库、新建用户、用户授权、修改用户密码

    1.创建新的数据库 1.1.root用户登录mysql mysql -u root -p  1.2.查看现有数据库 show databases;  1.3.新建数据库,此命名为cjc create ...

  8. 一个windows下的ddos样本

    一个windows下的ddos样本. 加载器 程序运行之后会在临时目录释放出一个256_res.tmp的文件 之后将该文件移动至system32目录下,以rasmedia.dll命名. 删除原文件. ...

  9. Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?

    上一篇我们学习了如何写一个Andorid下自动更新的插件,我想还有一部分看本系列blog的开发人员希望学习在iOS下如何做插件的吧,那么今天你就可以来看看这篇文字了. 本次练习你能学到的 学习如何获取 ...

随机推荐

  1. 关于Vue 移动端适配 (px2rem 插件将px转为rem)

    一.安装 npm install px2rem-loader lib-flexible --save 二.入口文件main.js加上 import 'lib-flexible/flexible.js' ...

  2. MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)

    确定某点附近的点 答:每个解对应的是一组权重,即子问题,红点附近的四个点,也就是它的邻居怎么确定呢?由权重来确定,算法初始化阶段就确定了每个权重对应的邻居,也就是每个子问题的邻居子问题.权重的邻居通过 ...

  3. java中JVM和JMM之间的区别

    一 jvm结构 jvm的内部结构如下图所示,这张图很清楚形象的描绘了整个JVM的内部结构,以及各个部分之间的交互和作用. 1 Class Loader(类加载器)就是将Class文件加载到内存,再说的 ...

  4. 单片机 MCU 固件打包脚本软件

    ​ 1 前言 开发完 MCU 软件后,通常都会生成 hex 文件或者 bin 文件,用来做固件烧录或者升级,如果用来做产品开发,就涉及到固件版本的问题,初学者通常采用固件文件重命名来区分版本. 如果需 ...

  5. 面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读

    SIGMOD 数据管理国际会议是数据库领域具有最高学术地位的国际性会议,位列数据库方向顶级会议之首.近日,腾讯云数据库团队的最新研究成果入选 SIGMOD 2022 Research Full Pap ...

  6. 《Stepwise Metric Promotion for Unsupervised Video Person Re-identification》 ICCV 2017

    Motivation: 这是ICCV 17年做无监督视频ReID的一篇文章.这篇文章简单来说基于两个Motivation. 在不同地方或者同一地方间隔较长时间得到的tracklet往往包含的人物是不同 ...

  7. 经典面试题:==和equals的区别

    1.== 既可以比较基本类型也可以比较引用类型.对于基本类型就是比较值,对于引用类型就是比较内存地址 2.equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过 ...

  8. mysql 01: source命令

    使用mysql的source命令,执行sql脚本 之所以使用docker同步挂载卷的方法,是因为在docker中运行的mysql未安装vim或gedit等基本编辑器 不方便在mysql容器里直接写sq ...

  9. 2022-7-11第五组 pan小堂 js基础

    ##为何学习 JavaScript? ###JavaScript 是 web 开发者必学的三种语言之一: HTML 定义网页的内容 CSS 规定网页的布局 JavaScript 对网页行为进行编程 在 ...

  10. AI全流程开发难题破解之钥

    摘要:通过对ModelArts.盘古大模型.ModelBox产品技术的解读,帮助开发者更好的了解AI开发生产线. 本文分享自华为云社区<[大厂内参]第16期:华为云AI开发生产线,破解AI全流程 ...