Oracle数据库安全性管理基本措施简介

数据安全性是指保护数据以防止非法的使用,避免造成数据有意或无意的丢失、泄露或破坏。由于数据库系统中集中存放有大量的数据,这些数据又为众多用户所共享,所以安全约束是一个极为突出的问题。

Oracle数据库系统在实现数据库安全性管理方面采取的基本措施有:

◆通过验证用户名称和口令,防止非Oracle用户注册到Oracle数据库,对数据库进行非法存取操作。

◆授予用户一定的权限,例如connect,resource等,限制用户操纵数据库的权力。

◆授予用户对数据库实体(如表、表空间、过程等)的存取执行权限,阻止用户访问非授权数据。

◆提供数据库实体存取审计机制,使数据库管理员可以监视数据库中数据的存取情况和系统资源的使用情况。

◆采用视图机制,限制存取基表的行和列集合。

在实际应用中,许多系统往往采用假用户(即非数据库用户)身份来管理,而真实用户的身份和登录口令就隐藏在应用系统中,或经过各种压缩加密等处理的配置文件中。但这样往往留下隐患,只要从分析应用程序入手,最终会分析出系统使用的数据库用户和口令,那么其安全性也就消失了。另一方面,系统代码是程序员写出来的,如果程序员有破坏意图,这种模式没有一丝的安全,因为他通过自己掌握的代码不经分析就轻而易举的获得登录用的数据库用户和口令。

而采用真实数据库用户,存在着权限分配上的难度,特别是用户数和应用表数都很多时,这时必然要使用角色来管理应用权限的分配。当然不能直接将权限或角色直接分配给用户,否则用户可以不同过应用系统,而采用SQL*PLUS等前端工具进入系统,进行一些没有经过应用系统检查的操作,产生的结果可能不符合应用逻辑。

我们在实践中发现,可以采用另一种方式利用角色功能,来防止上面出现的安全“漏洞”。在这种方式下,用户采用自己的标识和口令注册,但在未得到授权的角色前,是没有操纵数据库的任何权限。而授权用户使用的角色是埋在应用程序中的,只有应用程序才知道角色的名称和口令,从而激活角色,使用户拥有相应的权限。在应用系统之外,用户可以连接到Oracle,但没有激活相应的角色,他是不能做任何事情的,而开发人员不知道用户的标识和口令,他没有办法登录到Oracle,即使他能够推算出角色的标识和口令。

下面根据一个例子给出具体的实现过程:

我们假设用户xiayan在工作中能够对工资表account.paytable(account是表paytable的拥有者)有查询和更新的权限,而这些权限我们不直接授予xiayan,而是构造一个角色(比如考勤员checkerrole),这个角色恰好适合于xiayan,再将角色授予xiayan,但角色在激活时需要口令,该口令不对xiayan公开。每个用户需要一个缺省的角色,是用户连接到Oracle时的缺省角色。这个角色只有connect权限,我们假为defaultrole。

下面给出具体的操作SQL。

(1)设定各种角色及其权限

CREATE ROLE checkerrole IDENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANTSELECT,UPDATEONaccount.paytableTOcheckerrole;

GRANTCONNECTTOdefaultrole;

(2)创建用户

CREATEUSERxiayanIDENTIFIEDBYxiayan;

(3)授权

GRANTcheckerroleTOxiayan; GRANTdefaultroleTOxiayan;

(4)设定用户缺省的角色

ALTERUSERxiayanDEFAULTROLEdefaultrole;

(5)注册过程

CONNECTxiayan/xiayan@Oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SETROLEcheckerroleIDENTIFIEDBYxm361001;

操作成功后,xiayan拥有checkerrole的权限。

这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全。

时间: 2024-09-17 04:04:26

Oracle数据库安全性管理基本措施简介的相关文章

Oracle数据库REDO管理

一.什么是REDO LOG REDOLOG文件是十分重要的文件,它记录了Oracle的所有变化,是数据库实例恢复机制中最为关键的组成部分. sys@OCM> select * from v$log; GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# NEXT_TIME ---------- ----

【C/C++学院】(24)Oracle数据库编程--管理oracle

一.启动和停止oracle 停止和启动oracle需要切换到oracle用户才可以,其他用户都没有权限启动和停止oracle(包括root也没有权限). 1.运行sqlplus但不登录到oracle: sqlplus /nolog2.以系统管理员的权限连接到oracle服务器conn /as sysdba;3.启动oracle服务startup4.停止oracle服务shutdown immediate; oracle的listener相当于oracle的TCPserver,liestener会

Oracle数据库UNDO管理

一.Undo表空间和回滚段 1.Undo段的主要作用 (1)事务回滚 (2)事务恢复(实例恢复,利用回滚来恢复未提交的数据) (3)读一致性(构造CR) (4)闪回查询 2.查与undo相关的参数: sys@OCM> show parameter undo NAME                                 TYPE        VALUE ----------------------------------------------- ------------------

Oracle数据库10g的安全性和身份管理

Oracle数据库10g的安全性和身份管理 作者:Michael Miley Oracle数据库10g为Oracle身份管理提供了一种安全.可伸缩的基础.Oracle互联网目录(OID)是作为一个运行在Oracle数据库10g上的应用程序来实施的,使 OID能够在一个单一服务器上或者某个网格中的各个节点上支持数T字节的目录信息. Oracle数据库10g凭借诸如虚拟私有数据库等这样强大的功能来保护原始数据.重要的数据库安全性特性包括: 企业用户安全性.Oracle数据库10g的企业用户安全性特性

SQL Server与Oracle数据库在安全性上的异同

前言:Oracle数据库和SQL Server数据库是两种应用比较普遍的数据库,在业界,人们普遍认为Oracle数据库的安全性要比SQL Server数据库高,但实际情况Oracle数据库和SQL Server数据库二者又有着怎么的差别,下面笔者就来谈谈这两种数据库在安全性设计上面的异同.掌握好这些内容,对于我们进行数据库安全方面的设计与管理,有着举足轻重的作用. 一.角色到用户的授权. 现在很多应用软件,包括数据库系统,都采用了角色到用户的授权体系.也就是说,先给一个角色进行授权,然后再把用户

ORACLE数据库简介

一.概论   ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地  讲它是用方便逻辑管理的语言操纵大量有规律数据的集合.是目前最流行的客  户/服务器(CLIENT/SERVER)体系结构的数据库之一.  二.特点     1.ORACLE7.X以来引入了共享SQL和多线索服务器体系结构.这减少了ORACLE 的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源  就可以支持更多的用户,而在高档平台上可以支持成百上千个用户.    2.提供了基于角

Oracle数据库的空间管理技巧

oracle|技巧|数据|数据库 在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定. 一.表空间的自由空间 通过对表空间的自由空间的观察,可用来判断分配给某个表空间的空间是太多还是不够.请看下列的语句 SQL > select a.file_id "FileNo",a.tablespace_name "Tablespace_name", 2 a.bytes "Bytes",a.byte

Oracle数据库中表空间的基本管理操作小结_oracle

DB存储层次结构 (画了个草图,将就看一下...XD) 管理表空间         -system 存放数据字典信息,必须的,创建数据库时第一个创建         -sysaux 10g新,必须的,辅助分担system的负荷,系统管理如oem等三方工具等         -undo 存储回滚段信息,提供事务回滚功能         -temp 存放用户排序的临时数据         -index 存放用户表上的索引信息         -other 不同用户表数据 获取表空间和数据文件信息  

Oracle数据库的空间管理技巧_oracle

正在看的ORACLE教程是:Oracle数据库的空间管理技巧. 在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定.  一.表空间的自由空间  通过对表空间的自由空间的观察,可用来判断分配给某个表空间的空间是太多还是不够.请看下列的语句  可以看出,在FileNo为12的表空间RBS中,只有0.19%的分配空间未被使用,这个比例太小了,而在SYSTEM及TEMP等表空间中,高达80%以上的空间未被利用,对于生产型数据库,这个表空间的设置有些偏