作者小头像 Lv.1
0 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

云计算
个人勋章
TA还没获得勋章~
成长雷达
0
0
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

云计算

达成规则

发布时间 2025/06/05 18:38:11 最后回复 黄生 2025/06/19 13:44:43 版块 数仓DWS
90 7 0
他的回复:
1. 限制删除权限限制删除权限的目的是防止普通用户或特定用户对数据库中的数据或对象(如表、视图、存储过程等)进行删除操作。以下是常见的限制删除权限的方法:(1) 数据库用户权限管理创建用户时限制权限:在创建用户时,可以明确授予或拒绝删除权限。例如,在 MySQL 中:CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'localhost';-- 不授予 DELETE 权限显式拒绝删除权限:如果用户已经拥有某些权限,可以通过 REVOKE 命令显式拒绝删除权限。例如,在 MySQL 中:REVOKE DELETE ON database.table FROM 'username'@'localhost';(2) 表级或对象级权限控制限制对特定表的删除权限:只授予用户对特定表的 SELECT, INSERT, UPDATE 权限,而不授予 DELETE 权限。例如,在 PostgreSQL 中:GRANT SELECT, INSERT, UPDATE ON table_name TO username;使用视图限制删除操作:创建视图并授予用户对视图的权限,而不是直接授予对表的权限。视图可以限制用户只能查看或修改特定的数据,而无法直接删除表中的数据。(3) 使用触发器限制删除操作创建触发器阻止删除操作:在表上创建触发器,当删除操作被执行时,触发器可以阻止删除或记录删除操作。例如,在 MySQL 中:CREATE TRIGGER before_delete_triggerBEFORE DELETE ON table_nameFOR EACH ROWBEGIN -- 阻止删除操作 SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Delete operation is not allowed.';END;(4) 数据库角色管理创建角色并限制权限:创建一个角色(Role),并授予该角色有限的权限,然后将角色分配给用户。例如,在 PostgreSQL 中:CREATE ROLE restricted_user;GRANT SELECT, INSERT, UPDATE ON table_name TO restricted_user;-- 不授予 DELETE 权限2. 回收删除权限回收删除权限的目的是撤销用户或角色的删除权限,确保他们无法再执行删除操作。(1) 显式回收权限使用 REVOKE 命令回收权限:通过 REVOKE 命令显式回收用户的删除权限。例如,在 MySQL 中:REVOKE DELETE ON database.table FROM 'username'@'localhost';回收角色权限:如果权限是通过角色授予的,可以回收角色的权限。例如,在 PostgreSQL 中:REVOKE DELETE ON table_name FROM restricted_user;(2) 删除用户或角色删除用户:如果用户不再需要访问数据库,可以直接删除用户。例如,在 MySQL 中:DROP USER 'username'@'localhost';删除角色:如果角色不再需要,可以删除角色。例如,在 PostgreSQL 中:DROP ROLE restricted_user;(3) 审计和监控审计删除操作:通过审计功能记录所有删除操作,确保权限回收后没有未授权的删除操作。例如,在 Oracle 中:AUDIT DELETE ON table_name BY ACCESS;监控用户行为:使用数据库监控工具或日志分析工具,实时监控用户的操作,防止未经授权的删除行为。3. 特殊情况处理管理员权限:数据库管理员(DBA)通常拥有最高权限,包括删除权限。需要确保 DBA 的操作受到审计和监控。防止权限绕过:确保权限控制是多层次的,例如结合应用程序逻辑和数据库权限,防止用户通过其他方式绕过删除权限限制。
发布时间 2024/10/22 15:40:23 最后回复 黄生 2024/10/28 23:49:16 版块 数仓DWS
159 6 0
发布时间 2024/09/14 10:24:51 最后回复 炒香菇的书呆子 2024/09/30 21:59:50 版块 数仓DWS
1046 9 0
他的回复:
Gauss的版本历史    华为数据库最早诞生于运营商的需求,最初版本名称为GMDB,后来基于PostgreSQL-XC进行整体改造,再配合自研的存储引擎,发布了FusionInsight LibrA,也就是大家听过较多的MPPDB,目前官网上还能找到一些FusionInsight LibrA的资料。     同时在2015年,华为成立了另一项目组,纯自研了一款与Oracle非常相似的数据库,引擎名称为Zenith。在2015-2016年左右,华为基于MySQL研发了一款云原生数据库TaurusDB(这个时间段大概有三款并行的数据库产品)。   2018年左右,华为开始进行数据库整合,对数据库产品名定义为GaussDB。针对不同的场景,分为GaussDB 100(简单OLTP场景,单节点架构,基于Zenith引擎)、GaussDB 200(OLAP及数仓场景,MPPDB架构,基于Libra引擎)、GaussDB 300(HTAP场景,分布式架构,貌似是基于PostgreSQL-XL改造)三个对外的产品,在2019年又进行了再次整合,将GaussDB 100、GaussDB 300合并,产品名称变为GaussDB T(OLTP、HTAP场景)、GaussDB A(OLAP场景,原Gauss 200)。     之后基于华为云的整体策略,Zenith貌似(不确定)是弃用了,启用原Libra内核(内核名称改成了轩辕),GaussDB A变成了目前的华为云上DWS服务,GaussDB T变成了GaussDB for openGauss服务,同时也将openGauss开源。由于openGauss是基于GMDB发展而来(也就是基于PostgreSQL的产品路线),所以命令行和元数据库的信息看起来还是Postgres,不过底层的存储引擎与PostgreSQL有不少改动。GaussDB和Open Gauss的关系      关系型数据库从使用场景上主要分为OLTP主要分为OLTP(Oracle: GaussDB for openGauss,MySQL:RDS for MySQL,SQL server:RDS for SQL Server等)、OLAP(DWS,TeraData,Exadata等),HTAP。      部署模式上来说:GaussDB目前有单机版、集群版、分布式三个版本,其中华为开源的OpenGauss主要是单机和集群(主备版,21年初3.0发布的),而华为云的GaussDB for opengauss分为集群(主备版)和分布式版两个类型。      主要能力上来说:opengauss的能力除了分布式没有,多了一些新特性,比如AI4DB(参数调优与诊断、慢SQL,ABO优化器),DB4AI(库内算子,SQL进行训练和预算)方面,GaussDB for opengauss在这方面较为保守和慢。
发布时间 2024/08/06 09:57:38 最后回复 林欣 2024/08/22 17:50:55 版块 数仓DWS
334 4 0