MYSQL、ORACLE、PostgreSQL数据库对象层次及权限管理对比

本文主要是介绍MYSQL、ORACLE、PostgreSQL数据库对象层次及权限管理对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、PostgreSQL
  • 二、MySQL
  • 三、Oracle

前言

本文为出于自己扩展、比较、图形化的思维路径自行总结归纳,可能有些细节不太准确,欢迎指正。
MySQL、Oracle、PostgreSQL关系型数据库都有管理员用户、用户、权限管理、表函数索引等数据库对象,schema。但在数据库对象隶属层次上有差异和相同的地方。

一、PostgreSQL

在这里插入图片描述

  1. PostgreSQL的数据库对象及权限管理分层管理。
    一个实例下可以有多个数据库,每个数据库下有多个schema,每个schema下有不同的数据库对象,用户A要访问某个数据库的表,需要依次获取对该数据库(可以访问多个数据库)、该schema、该表的权限,才能成功访问。
  2. user和schema不是绑定的
    默认情况下,在一个数据库内新建一个新用户时会默认创建该用户的同名schema,该用户拥有对同名schema的所有权限,同时,也可以新建其他schema,一个用户可以拥有、访问多个schema。
    3.权限管理分为:管理员权限和对象权限
    管理员与实例权限:SYSADMIN(系统管理员权限)、MONADMIN(监控管理员权限)、OPRADMIN(运维管理员)、POLADMIN(安全策略管理员权限)、AUDITADMIN(审计管理员权限)、LOGIN、CREATEDB、CREATEROLE、USEFT、CREATEROLE。
    对象权限:对database、schema、table、package、等对象insert、select等权限
管理员与实例权限赋权语句
create user XXX SYSADMIN|LOGIN|CREATEDB....(不一一举例,);
alter user XXX SYSADMIN|LOGIN|CREATEDB....(不一一举例,);
对象权限(不一一举例)selectupdateinsert等等权限
grant all privileges on database XXX to user;
grant all privileges on schema A to XXX;
grant all privileges on table tabname to XXX;

二、MySQL

在这里插入图片描述

  1. schema和数据库(database)是相同的
    也就是说schema名称和数据库实例的名称是相同的,一个数据库只拥有一个schema。
  2. 权限管理分为:全局权限、数据库权限、对象权限。
    在这里插入图片描述

三、Oracle

在这里插入图片描述

  1. Oracle 用户user和schema强绑定
    oracle一般(严谨点)一个集群只有一个数据库,一个数据库下可以有多个user(schema),一个用户只能有一个schema
  2. 权限管理份分为:系统权限和对象权限
    系统权限 :oracle总计有225种系统权限,系统规定使用数据库的权限。对oracle来说,对数据库和对模式的权限属于系统权限。包括dba权限
    用户权限:授权给表、视图、序列、同义词的权限
系统权限
GRANT <系统权限名称> TO {PUBLIC | <角色名> | <用户名>[,...N]} [WITH ADMIN OPTION]
WITH ADMIN OPTION表示指定用户可以将这些权限授予该其他的用户。
系统权限:(不一一举例)
系统权限包括 数据库维护权限
ALTER DATABASE            修改数据库的结构
ALTER SYSTEM            修改数据库系统的初始化参数
DROP PUBULIC SYNONYM    删除公共同义词
create procedure        在自己的模式中创建存储过程
drop procedure            在自己的模式中删除存储过程
create database link    创建数据库连接权限,通过数据库连接允许用户存取远程的数据库。
drop datebase link        删除数据库的连接
create synonym            创建私有同义词
drop synonym            删除同义词
create sequence            创建开发者所需的序列
create trigger            创建触发器
————————————————
对象权限
对象权限的授予
GRANT {<对象权限名> | ALL [PRIVILEGE] [(<>[,...N])]}
ON [用户方案名.]<对象权限名> TO {PUBLIC | <角色名>| <用户名>[,...N]}
[WITH GRANT OPTION]
对象权限分类
SELECT:读取表,视图,序列中的行;
UPDATE:更新表,视图和序列中的行;
DELETE:删除表,视图中的数据;
INSERT:向表和视图中插入数据;
EXECUTE:执行类型,函数,包和过程;
READ:读取数据字典中的数据;
INDEX:生成索引
ALTER:修改表,序列,同义词中的结构。

这篇关于MYSQL、ORACLE、PostgreSQL数据库对象层次及权限管理对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1058744

相关文章

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分