KingbaseES 如何把一个schema下的所有对象访问权限授权给其他用户
用户需求:新建一个用户 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
- 测试
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; --可以查询授权后新建的表
id3
(1 行记录)
test=> select * from user1.t_user1; --对旧的对象权限没有影响
错误: 对表 t_user1 权限不够
KingbaseES 如何把一个schema下的所有对象访问权限授权给其他用户的更多相关文章
- Linux 下指定端口开放访问权限
Linux 下指定端口开放访问权限 作者:Grey 原文地址: 博客园:Linux 下指定端口开放访问权限 CSDN:Linux 下指定端口开放访问权限 环境 CentOS 系和 Debian 系的防 ...
- Linux下进程的文件访问权限
本文转自 http://blog.csdn.net/chosen0ne/article/details/10581883 对进程校验文件访问权限包括两个部分,一是确定进程的角色(属于哪个用户或者组), ...
- [Z] Linux下进程的文件访问权限
原文链接:http://blog.csdn.net/chosen0ne/article/details/10581883 对进程校验文件访问权限包括两个部分,一是确定进程的角色(属于哪个用户或者组), ...
- 继承下public,protected,private访问权限
C++中派生类对基类成员的访问形式主要有以下两种: 1.内部访问:由派生类中新增成员对基类继承来的成员的访问. 2.对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问.今天给大家介绍在 ...
- 【netcore基础】wwwroot下静态资源文件访问权限控制
本文参考如下博问 https://q.cnblogs.com/q/107836 业务要求 上传的资源文件(.mp3 .mp4等)只有购买了之后才能有权限访问,所以对上传的资源文件目录进行访问权限控制 ...
- Ubuntu下开启mysql远程登陆权限
在腾讯云上租了个云服务器,并且安装启动了mysql. 这时候用本地的mysql workbench去连接就会报错,提示无法成功连接. 其实这是因为没有开启账户的远程登陆权限.那么下面就开启一下: 1. ...
- llinux下mysql建库、新建用户、用户授权、修改用户密码
1.创建新的数据库 1.1.root用户登录mysql mysql -u root -p 1.2.查看现有数据库 show databases; 1.3.新建数据库,此命名为cjc create ...
- 一个windows下的ddos样本
一个windows下的ddos样本. 加载器 程序运行之后会在临时目录释放出一个256_res.tmp的文件 之后将该文件移动至system32目录下,以rasmedia.dll命名. 删除原文件. ...
- Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?
上一篇我们学习了如何写一个Andorid下自动更新的插件,我想还有一部分看本系列blog的开发人员希望学习在iOS下如何做插件的吧,那么今天你就可以来看看这篇文字了. 本次练习你能学到的 学习如何获取 ...
随机推荐
- 关于Vue 移动端适配 (px2rem 插件将px转为rem)
一.安装 npm install px2rem-loader lib-flexible --save 二.入口文件main.js加上 import 'lib-flexible/flexible.js' ...
- MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)
确定某点附近的点 答:每个解对应的是一组权重,即子问题,红点附近的四个点,也就是它的邻居怎么确定呢?由权重来确定,算法初始化阶段就确定了每个权重对应的邻居,也就是每个子问题的邻居子问题.权重的邻居通过 ...
- java中JVM和JMM之间的区别
一 jvm结构 jvm的内部结构如下图所示,这张图很清楚形象的描绘了整个JVM的内部结构,以及各个部分之间的交互和作用. 1 Class Loader(类加载器)就是将Class文件加载到内存,再说的 ...
- 单片机 MCU 固件打包脚本软件
1 前言 开发完 MCU 软件后,通常都会生成 hex 文件或者 bin 文件,用来做固件烧录或者升级,如果用来做产品开发,就涉及到固件版本的问题,初学者通常采用固件文件重命名来区分版本. 如果需 ...
- 面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
SIGMOD 数据管理国际会议是数据库领域具有最高学术地位的国际性会议,位列数据库方向顶级会议之首.近日,腾讯云数据库团队的最新研究成果入选 SIGMOD 2022 Research Full Pap ...
- 《Stepwise Metric Promotion for Unsupervised Video Person Re-identification》 ICCV 2017
Motivation: 这是ICCV 17年做无监督视频ReID的一篇文章.这篇文章简单来说基于两个Motivation. 在不同地方或者同一地方间隔较长时间得到的tracklet往往包含的人物是不同 ...
- 经典面试题:==和equals的区别
1.== 既可以比较基本类型也可以比较引用类型.对于基本类型就是比较值,对于引用类型就是比较内存地址 2.equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过 ...
- mysql 01: source命令
使用mysql的source命令,执行sql脚本 之所以使用docker同步挂载卷的方法,是因为在docker中运行的mysql未安装vim或gedit等基本编辑器 不方便在mysql容器里直接写sq ...
- 2022-7-11第五组 pan小堂 js基础
##为何学习 JavaScript? ###JavaScript 是 web 开发者必学的三种语言之一: HTML 定义网页的内容 CSS 规定网页的布局 JavaScript 对网页行为进行编程 在 ...
- AI全流程开发难题破解之钥
摘要:通过对ModelArts.盘古大模型.ModelBox产品技术的解读,帮助开发者更好的了解AI开发生产线. 本文分享自华为云社区<[大厂内参]第16期:华为云AI开发生产线,破解AI全流程 ...