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

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u