当前位置: 首页 > news >正文

led行业网站源码asp网站浏览器兼容

led行业网站源码,asp网站浏览器兼容,做网站有前途,游戏网站做代理在 《GaussDB中 alter default privileges 的使用示例(上)》 中,对alter default privileges的作用及语法做了介绍,本文,将继续通过使用示例来做进一步的说明。 第三章 使用示例 3.1 示例1:使用初始用户授权…

在 《GaussDB中 alter default privileges 的使用示例(上)》 中,对alter default privileges的作用及语法做了介绍,本文,将继续通过使用示例来做进一步的说明。

第三章 使用示例

3.1 示例1:使用初始用户授权,不指定SCHEMA

使用数据库初始用户(默认是gaussdb)操作,允许user2用户,访问user1用户中已经存在的表(包含视图),以及未来创建的表(包含视图)。

1、 清理环境,避免影响

图片.png

2、 创建user1,user2,并允许user2访问user1中此后创建的表和视图。

图片.png

3、 在user1中创建表及视图

图片.png

4、 使用user2登录数据库,并访问user1中创建的表及视图

图片.png

如上所示,用户user2已可以访问授权以后,user1创建的表及视图。

3.2 示例2:使用当前用户授权

在示例1中,我们使用的是数据库的初始用户,来指定将user1中未来创建的表(包含视图)允许user2来访问。所以,在命令中,我们需要使用“for user user1”的选项来指定user1。若我们使用user1用户自身来授权user2时,则该选项可以省略。

测试过程如下:

1、 清理环境,避免影响

图片.png

2、 创建user1,user2,并允许user2访问user1中此后创建的表和视图。

图片.png

使用user1登录后,执行alter default privileges 命令:

图片.png

注意,上图与示例1的区别在于:其一,执行的用户是user1,其二,命令中无需指定“for user user1”选项。当不指定该选项时,默认是当前用户。

3、 在user1中创建表及视图

图片.png

4、 使用user2登录数据库,并访问user1中创建的表及视图

图片.png

如上所示,用户user2已可以访问授权以后,user1创建的表及视图。

3.3 示例3:指定SCHEMA

在前面的示例1和示例2,是将user1下的表(包括视图),无论其处于哪个SCHEMA下,都允许user2来访问。如果只允许user2访问user1指定SCHEMA(可以指定多个)下的表(包括视图),则需要使用到“[ IN SCHEMA schema_name [, …] ]”选项。
以下,将展示此场景需求下的操作及效果:

1、 清理环境,避免影响

图片.png

2、 创建user1,user2及所需的schema

为user1额外再创建两个schema(user_schema1和user_schema2),设置其owner为user1,并允授权user2对user1所拥有的三个schema(user1,user_schema1,user_schema2)的usage权限
图片.png

3、 使用alter default privileges命令,允许user2访问

user_schema1和user_schema2中未来创建的表(包括视图)
图片.png

如上图所示,我们这里使用到了“in schema user_schema1,user_schema2”的选项。

4、 使用user1创建相应的表和视图

使用user1,分别在上述的三个schema中,各创建一张表。在三个schema中,还各创建三个视图,这三个视图用于分别访问不同schema中的表。目的是测试user2可以访问哪些schema中的表和视图。
图片.png

如上图所示,在三个schema中,分别创建了三张表。

然后在三个schema中,各创建三个视图,用于分别访问上述三张表。如下图所示:
图片.png

如上图所示,虽然三个视图名称完全相同,但由于它们分别位于不同的schema中,所以,并不会产生类似“对象已存在”的冲突。

5、 使用user2访问上述的三张表

图片.png

如上所示,由于我们在使用alter default privileges给user2授权时,使用了“in schema user_schema1,user_schema2”的选项,所以,user2只能访问位于这两个schema中的表。

6、 使用user2访问前面创建的九个视图。

先来访问位于user1 schema中的三个视图:
图片.png

如上图所示,user2均无法访问。这是因为user2并无访问schema user1中的权限。
接下来,访问 user_schema1中的三个视图:
图片.png

如上图所示,我们发现,尽管我们并没有访问位于user1 schema中表user1_tab1的权限,但并不影响我们对位于user_schema1中访问该表的视图vw_user1_tab1的访问。

最后,我们访问 user_schema2中的三个视图:
图片.png

如上图所示,其结果与前述类似,这里不再赘述。

第四章 附录

ALTER DEFAULT PRIVILEGES语法摘要说明
语法格式:

  ALTER DEFAULT PRIVILEGES[ FOR { ROLE | USER } target_role [, ...] ][ IN SCHEMA schema_name [, ...] ]abbreviated_grant_or_revoke;

其中abbreviated_grant_or_revoke子句用于指定对哪些对象进行授权或回收权限。有如下一些子句:

• grant_on_tables_clause
• grant_on_sequences_clause
• grant_on_functions_clause
• grant_on_types_clause
• grant_on_client_master_keys_clause
• grant_on_column_encryption_keys_clause
• revoke_on_tables_clause
• revoke_on_sequences_clause
• revoke_on_functions_clause
• revoke_on_types_clause
• revoke_on_client_master_keys_clause
• revoke_on_column_encryption_keys_clause

其中grant_on_tables_clause子句用于对表授权。

 GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }ON TABLES TO { [ GROUP ] role_name | PUBLIC } [, ...][ WITH GRANT OPTION ]

其中grant_on_sequences_clause子句用于对序列授权。

GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
[, …] | ALL [ PRIVILEGES ] }
ON SEQUENCES
TO { [ GROUP ] role_name | PUBLIC } [, …]
[ WITH GRANT OPTION ]

其中grant_on_functions_clause子句用于对函数授权。

  GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }ON FUNCTIONS TO { [ GROUP ] role_name | PUBLIC } [, ...][ WITH GRANT OPTION ]

其中grant_on_types_clause子句用于对类型授权。

  GRANT { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }ON TYPES TO { [ GROUP ] role_name | PUBLIC } [, ...][ WITH GRANT OPTION ]

其中grant_on_client_master_keys_clause子句用于对客户端主密钥授权。

  GRANT { { USAGE  | DROP } [, ...] | ALL [ PRIVILEGES ] }ON CLIENT_MASTER_KEYSTO { [ GROUP ] role_name | PUBLIC } [, ...][ WITH GRANT OPTION ]

其中grant_on_column_encryption_keys_clause子句用于对列加密密钥授权。

 GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }ON COLUMN_ENCRYPTION_KEYS TO { [ GROUP ] role_name | PUBLIC } [, ...][ WITH GRANT OPTION ]

其中revoke_on_tables_clause子句用于回收表对象的权限。

REVOKE [ GRANT OPTION FOR ]{ { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] }ON TABLES FROM { [ GROUP ] role_name | PUBLIC } [, ...][ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]

其中revoke_on_sequences_clause子句用于回收序列的权限。

REVOKE [ GRANT OPTION FOR ]
{ { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
[, …] | ALL [ PRIVILEGES ] }
ON SEQUENCES
FROM { [ GROUP ] role_name | PUBLIC } [, …]
[ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]

其中revoke_on_functions_clause子句用于回收函数的权限。

REVOKE [ GRANT OPTION FOR ]{ {EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }ON FUNCTIONS FROM { [ GROUP ] role_name | PUBLIC } [, ...][ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]

其中revoke_on_types_clause子句用于回收类型的权限。

  REVOKE [ GRANT OPTION FOR ]{ { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }ON TYPES FROM { [ GROUP ] role_name | PUBLIC } [, ...][ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]

其中revoke_on_client_master_keys_clause子句用于回收客户端主密钥的权限。

  REVOKE [ GRANT OPTION FOR ]{ { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }ON CLIENT_MASTER_KEYS FROM { [ GROUP ] role_name | PUBLIC } [, ...][ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]

其中revoke_on_column_encryption_keys_clause子句用于回收列加密密钥的权限。

  REVOKE [ GRANT OPTION FOR ]{ { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }ON COLUMN_ENCRYPTION_KEYSFROM { [ GROUP ] role_name | PUBLIC } [, ...][ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]

参数说明

target_role
已有角色的名称。如果省略FOR ROLE/USER,则缺省值为当前角色/用户。
取值范围:已有角色的名称。

schema_name
现有模式的名称。
target_role必须有schema_name的CREATE权限。
取值范围:现有模式的名称。

role_name
被授予或者取消权限角色的名称。
取值范围:已存在的角色名称。

如果想删除一个被赋予了默认权限的角色,有必要恢复改变的缺省权限或者使用DROP OWNED BY来为角色脱离缺省的权限记录。

http://www.dtcms.com/a/506949.html

相关文章:

  • Linux基本指令(3)
  • TypeScript 快速入门与环境搭建
  • Python数据分析实战:基于PISA 2022金融素养数据集,解构“借衣服收2元”背后的青少年金钱观【数据集可下载】
  • 用TikZ绘制专业流程图:从入门到进阶(基于D3QN训练流程)
  • Java 反射机制实战:对象属性复制与私有方法调用全解析
  • 火星时代UE奶瓜粒子特效②
  • 网站制作流程图wordpress 维文版
  • MySQL与K8s:数据库运维新范式
  • 第9篇 opencv提取矩形角度不是很准确的处理方法
  • 检测十字标 opencv python
  • NSSCTF - Web | 【SWPUCTF 2021 新生赛】Do_you_know_http
  • Linux小课堂: 流、重定向与 cut 命令进阶
  • 虚拟内存核心常识
  • ubuntu配置mysql8.0并设置Navicat网络连接
  • 深圳网站维护一般多少钱网址大全黄免费片
  • 从若依框架看权限设计与数据字典:背后的工程化思考
  • 邦策网站建设平台网站建设文化咨询
  • ASTM D7033-2022 定向刨花板检测
  • 使用ThreadLocal的一些注意事项
  • Kotion 常见用法注意事项(持续更新...)
  • 如何使用思维导图提升信息整理效率
  • K-VXE-TABLE二次封装,含table‘自定义列功能
  • 基于 GEE 开发的一种利用 OTSU 算法实现水体提取的便捷工具
  • Linux小课堂: 深入解析 top、htop、glances 及进程终止机制
  • 建设协会网站洛阳伟创科技
  • MongoDB 提供的 `GridFSTemplate` 操作 GridFS 大文件系统的常用查询方式
  • 2025年ASOC SCI2区TOP,基于模糊分组的多仓库多无人机电力杆巡检模因算法,深度解析+性能实测
  • 无人机地面站中不同的飞行模式具体含义释义(开源飞控常用的5种模式)
  • Inventor 转换为 3DXML 全流程技术指南:附迪威模型网在线方案
  • Maven POM 简介