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 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

Mysql表如何按照日期字段的年月分区

《Mysql表如何按照日期字段的年月分区》:本文主要介绍Mysql表如何按照日期字段的年月分区的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、创键表时直接设置分区二、已有表分区1、分区的前置条件2、分区操作三、验证四、注意总结一、创键表时直接设置分区

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -