PARTVI-Oracle数据库管理与开发-数据库管理员和开发人员的主题

news/2024/11/17 15:34:07/文章来源:https://www.cnblogs.com/crispy-bro/p/18437048

17.数据库管理员和开发人员的主题

17.1. 数据库安全概述

通常情况下,数据库安全涉及用户认证、加密、访问控制和监控。

17.1.1. 用户账户

每个Oracle数据库都有一个有效数据库用户的列表。数据库包含几个默认账户,包括默认的管理员账户SYSTEM(参见第2-5页的“SYS和SYSTEM模式”)。你可以根据需要创建用户账户。要访问数据库,用户必须提供有效的用户名和认证凭据。凭据可能是密码、Kerberos票据或公钥基础设施(PKI)证书。你可以配置数据库安全以锁定基于失败登录尝试的账户。

17.1.1.1. 权限和角色授权

通常情况下,数据库访问控制涉及限制数据访问和数据库活动。例如,你可以限制用户查询指定的表或执行指定的数据库命令。

用户权限是运行特定SQL语句的权利。权限可以分为以下几类:

  • 系统权限:这是在数据库中执行特定操作或对特定类型的对象执行操作的权利。例如,CREATE USER和CREATE SESSION是系统权限。
  • 对象权限:这是对对象执行特定操作的权利,例如查询员工表。权限类型由数据库定义。

权限是由其他用户自行决定授予的。管理员应该根据用户完成工作所需的权限来授予权限。良好的安全实践是只授予需要该权限来完成必要工作的用户权限。角色是一组相关权限的命名集合,你可以将其授予用户或其他角色。角色有助于管理数据库应用程序或用户组的权限。图17-1描述了角色的常见用途。PAY_CLERK、MANAGER和REC_CLERK角色被分配给不同的用户。应用程序角色ACCTS_PAY,包括执行ACCTS_PAY应用程序的权限,被分配给具有PAY_CLERK和MANAGER角色的用户。应用程序角色ACCTS_REC,包括执行ACCTS_REC应用程序的权限,被分配给具有REC_CLERK和MANAGER角色的用户。

17.1.1.2. 配置文件

在系统资源的背景下,用户配置文件是一组命名的资源限制和密码参数,用于限制用户对数据库使用和实例资源的访问。配置文件可以限制用户并发会话的数量、每个会话可用的CPU处理时间以及可用的逻辑I/O数量(参见第14-10页的“缓冲区I/O”)。例如,职员配置文件可能会将用户限制在执行文书任务所需的系统资源上。

注意:最好使用数据库资源管理器来限制资源,并使用配置文件来管理密码。

配置文件为共享一组属性的用户提供了一个单一的参考点。你可以为一组用户分配一个配置文件,并对所有其他用户分配一个默认配置文件。每个用户在任何时候最多只能分配一个配置文件。

17.1.2. 授权

在Oracle数据库中,数据库认证是用户向数据库出示凭据的过程,数据库验证凭据并允许访问数据库。验证身份建立了进一步交互的信任关系。认证还通过将访问和操作链接到特定身份,实现了可追溯性。

Oracle数据库提供了不同的认证方法,包括以下方法:

  • 由数据库进行认证
    Oracle数据库可以使用密码、Kerberos票据或PKI证书来认证用户。Oracle还支持符合RADIUS标准的设备进行其他形式的认证,包括生物识别。在Oracle数据库中创建用户时,必须指定认证类型。
  • 由操作系统进行认证
    某些操作系统允许Oracle数据库使用它们维护的信息来认证用户。用户在被操作系统认证后,可以在不指定用户名或密码的情况下连接到数据库。

数据库操作,如关闭或启动数据库,不应由非管理数据库用户执行。这些操作需要SYSDBA或SYSOPER权限(参见第13-6页的“使用管理员权限连接”)。

17.1.3. 加密

通常情况下,加密是使用秘钥和加密算法将数据转换为不可读格式的过程。加密通常用于满足监管合规要求,例如与支付卡行业数据安全标准(PCI-DSS)或违规通知法律相关的要求。例如,必须加密信用卡号、社会安全号码或患者健康信息。

网络加密:在客户端和服务器之间通过网络传输数据时对其进行加密称为网络加密。入侵者可以使用网络数据包嗅探器捕获在网络上传输的信息,然后将其转储到文件中以供恶意使用。在网络上加密数据可以防止这类活动。

透明数据加密:Oracle Advanced Security的透明数据加密使你能够加密单个表格列或表空间。当用户将数据插入加密列时,数据库会自动加密数据。当用户选择该列时,数据会被解密。这种形式的加密是透明的,提供高性能且易于实施。透明数据加密包括行业标准的加密算法,如高级加密标准(AES)和内置的密钥管理。

17.1.4. Oracle数据屏蔽

从Oracle Database 11g Release 2(11.2.0.4)开始,Oracle Data Redaction使您能够对低权限用户或应用程序查询的数据进行屏蔽(红action)。当用户查询数据时,红action会实时发生。Oracle Data Redaction是Oracle Advanced Security的一部分。数据红action支持以下红action函数类型:

  • 完整数据红action
    在这种情况下,数据库会红action表格或视图中指定列的全部内容。例如,用于姓氏的VARCHAR2列显示为一个空格。

  • 部分数据红action
    在这种情况下,数据库会红action显示输出的部分内容。例如,应用程序可以将信用卡号1234显示为xxxx-xxxx-xxxx-1234。您可以为完整和部分红action使用正则表达式。正则表达式可以根据搜索模式红action数据。例如,您可以使用正则表达式来红action特定的电话号码或电子邮件地址。

  • 随机数据红action
    在这种情况下,数据库根据列的数据类型显示为随机生成的值。例如,数字1234567可以显示为83933895。

数据红action不是全面的安全解决方案。例如,它不能防止直接连接的特权用户对红action数据进行推理攻击。这种攻击识别红action列,并通过重复猜测存储值的SQL查询,通过排除法尝试回溯到实际数据。为了检测和防止来自特权用户的推理和其他攻击,Oracle建议将Oracle Data Redaction与相关的数据库安全产品配对,如Oracle Audit Vault and Database Firewall,以及Oracle Database Vault。

数据红action的工作方式如下:

  • 使用DBMS_REDACT包为指定的表创建一个红action策略。
  • 在策略中,指定一个预定义的红action函数。
    数据库显示列的实际值还是红action值取决于策略。如果数据被红action,则红action发生在顶层选择列表立即显示给用户之前。

以下示例为hr.employees表的employee_id列添加了一个完整数据红action策略:

BEGIN DBMS_REDACT.ADD_POLICY( 
object_schema => 'hr'
, object_name => 'employees'
, column_name => 'employee_id'
, policy_name => 'mask_emp_ids'
, function_type => DBMS_REDACT.FULL 
, expression  => '1=1' );
END; /

在前面的示例中,表达式设置为真,将红action应用于未被授予EXEMPT REDACTION POLICY权限的用户。

17.1.5. 访问控制

17.1.6. 监控

17.2. 高可用概述

17.3. 网格计算概述

17.4. 数据仓库与商业智能概述

17.5. Oracle信息集成概述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/805066.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

crypt.h:No such file or directory 报错处理

crypt.h:No such file or directory 报错处理crypt.h:No such file or directory 报错处理前言:本文初编辑于2024年9月28日 CSDN主页:https://blog.csdn.net/rvdgdsva 博客园主页:https://www.cnblogs.com/hassle大!萌!神! “crypt.h: No such file or directory” 这个…

深入理解 Nuxt.js 中的 app:error:cleared 钩子

title: 深入理解 Nuxt.js 中的 app:error:cleared 钩子 date: 2024/9/28 updated: 2024/9/28 author: cmdragon excerpt: Nuxt.js 中的 app:error:cleared 钩子的用途及其实现方式。这个钩子为开发者提供了一种优雅的方式来处理错误清除后的状态恢复和用户反馈。 categorie…

新手指南-新人入职-maven相关

一、前言 入职后,发现公司是用Maven对项目进行管理和构建。 一般来说,自己先确定以下几点: 1、公司对版本是否有要求。 2、是否要求IDEA对maven有特殊的配置。 3、确定自己的 MAVEN_HOME 系统环境是否配置。 4、确定maven中的setting.xml配置文件是否改成了公司要求。 Maven…

PARTV-Oracle实例架构-应用和网络架构

16. 应用和网络架构 16.1. Oracle应用架构 在本章的上下文中,应用架构指的是数据库应用程序连接到 Oracle 数据库的计算环境。 16.1.1. 客户端与服务端架构概述 在 Oracle 数据库环境中,数据库应用程序和数据库被分离成客户端/服务器架构:客户端运行数据库应用程序,例如 SQ…

AB plc设备数据 转profinet IO项目案例

VFBOX协议转换网关支持各种PLC,DLT645,modbus,HJ212,opc ua,opc da,IEC104,IEC61850,EthernetIP,Profinet IO,CCLink,EtherCAT,bacnet,DNP3目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集AB PLC数据 2 5 用PROFINET IO协议转发数据 4 6 案例总…

代码生成器实践总结

最近,又用我的脚本管理,写了一个代码生成器。 用在一个.net core Web MVC项目中,想要把原来的一些Area,拷贝替换表名。 业务上来说是:把推广模块,单独复制出一个推广-外部渠道的模块。专门给公司外部的推广人员用,但是不影响原来的功能。 本质结构代码生成器 = 模板 + 替…

【管理】销售管理到底应该怎么管?

销售是个数字游戏,销售管理的最终目的就是完成销售业绩。有人说销售管理是门艺术,有人说销售管理是科学。销售是一门艺术,但是可以通过科学的方式将这些艺术固化很多人对销售管理的认识存在很多不同,我们尝试用最为平时的语言总结一下销售管理到底应该管什么?到底怎么管?…

ES6箭头函数的使用

使用箭头函数的目的:引入箭头函数目的是更加更加简短的函数写法并且不绑定this,箭头函数的语法比函数表达式更加简洁 使用场景:箭头函数更加适用于哪些本来需要匿名函数的地方 定义语法:const fn = () => {}使用方式一:括号里面加形参// 箭头函数const fn = (x) => …

方法引用

方法引用 方法: 就是以前学过的方法. 引用: 就是把已有的方法拿过来用. 如何用: 当做函数式接口抽象方法的方法体. 总结: 方法引用就是把已经有的方法拿过来用, 当做函数式接口中抽象方法的方法体. 方法引用的条件:引用处必须是函数式接口.被引用的方法必须是已经存在的.被引用…

一次搞定30天账单,花了十分钟记账

一次搞定30天账单,花了十分钟记账 丑话在前:早出晚归忙奔波,挣钱如针挑土,花钱如水冲沙。挣一毛花十分,一分一厘不容易,开源节流铁公鸡。本教程适用于有复式记账基础的个人,由企业财务系统精简编制的模板,苹果设备 iphone\macbook 请使用 numbers 应用,或使用网页登录…

15 json常见操作与案例 序列化 反序列化

json:本质是一个特定结构的字符串 意义 :打通不同编程语言之间进行相互通信 时的数据格式问题。序列化(python数据类型 转换成 JSON格式化字符串)# python数据类型 转换成 JSON格式化字符串 序列化 import json # python数据类型 info = {"code": 1000, &quo…