- 浏览: 5175141 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
Oracle的安全措施主要有三个方面,一是用户标识和鉴定;二是授权和检查机制;三是审计技术(是否使用审计技术可由用户灵活选择);除此之外,Oracle还允许用户通过触发器灵活定义自己的安全性措施。
一、用户标识和鉴定
在Oracle中,最外层的安全性措施是让用户标识自己的名字,然后由系统进行核实。Oracle允许用户重复标识三次,如果三次未通过,系统自动退出。
二、授权与检查机制
Oracle的权限包括系统权限和数据库对象的权限两类,采用非集中的授权机制,即DBA负责授予与回收系统权限,每个用户授予与回收自己创建的数据库对象的权限。
Oracle允许重复授权,即可将某一权限多次授予同一用户,系统不会出错。Oracle也允许无效回收,即用户没有某种权限,但回收此权限的操作仍算成功。
1. 系统权限
Oracle提供了80多种系统权限,如创建会话、创建表、创建视图、创建用户等。DBA在创建一个用户时需要将其中的一些权限授予该用户。
Oracle支持角色的概念。所谓角色就是一组系统权限的集合,目的在于简化权限管理。Oracle除允许DBA定义角色外,还提供了预定义的角色,如CONNECT,RESOURCE和DBA。
具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵。即可以执行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作。
RESOURCE角色可以创建表,即执行CREATE TABLE操作。创建表的用户将拥有对该表的所有权限。
DBA角色可以执行某些授权命令,创建表,对任何表的数据进行操纵。它涵盖了前两种角色,此外还可以执行一些管理操作,DBA角色拥有最高级别的权限。
例如DBA建立一用户U1后,欲将ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系统权限授予U1,则可以只简单地将CONNECT角色授予U1即可:
GRANT CONNECT TO U1;
这样就可以省略十几条GRANT语句。
2. 数据库对象的权限
在Oracle中,可以授权的数据库对象包括基本表、视图、序列、同义词、存储过程、函数等,其中最重要的是基本表。
对于基本表Oracle支持三个级别的安全性:表级、行级和列级。
(1)表级安全性
表的创建者或者DBA可以把表级权限授予其他用户,表级权限包括:
ALTER:修改表定义
DELETE:删除表记录
INDEX:在表上建索引
INSERT:向表中插入数据记录
SELECT:查找表中记录
UPDATE:修改表中的数据
ALL:上述所有权限
表级授权使用GRANT和REVOKE语句。
(2)行级安全性
Oracle行级安全性由视图实现。用视图定义表的水平子集,限定用户在视图上的操作,就为表的行级提供了保护。视图上的授权与回收与表级完全相同。
例如,只允许用户U2查看Student表中信息系学生的数据,则首先创建信息系学生的视图S_IS,然后将该视图的SELECT权限授予U2用户。
(3)列级安全性
Oracle列级安全性可以由视图实现,也可以直接在基本表上定义。
用视图定义表的垂直子集就可以实现列级安全性,方法与上面类似。
直接在基本表上定义和回收列级权限也是使用GRANT和REVOKE语句。目前Oracle的列级权限只有UPDATE,回收列级UPDATE权限时,Oracle不允许一列一列地回收,只能回收整个表的UPDATE权限。例如,
GRANT UPDATE(Sno,Cno)ON SC TO U2;
把对SC表中Sno列和Cno列的UPDATE权限授予U2用户。
REVOKE UPDATE ON SC FROM U2;
回收了U2用户对SC表中Sno列和Cno列的UPDATE权限。
在Oracle中,表、行、列三级对象自上而下构成一个层次结构,其中上一级对象的权限制约下一级对象的权限。例如当一个用户拥有了对某个表的UPDATE权限,即相当于在表的所有列都拥有了UPDATE权限。
Oracle对数据库对象的权限采用分散控制方式,允许具有WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先。
Oracle把所有权限信息记录在数据字典中,当用户进行数据库操作时,Oracle首先根据数据字典中的权限信息,检查操作的合法性。在Oracle中,安全性检查是任何数据库操作的第一步。
三、Oracle的审计技术
在Oracle中,审计分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。
系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。
Oracle的审计功能很灵活,是否使用审计,对哪些表进行审计,对哪些操作进行审计等都可以由用户选择。为此,Oracle提供了AUDIT语句设置审计功能,NOAUDIT语句取消审计功能。设置审计时,可以详细指定对哪些SQL操作进行审计。例如,
对修改SC表结构或数据的操作进行审计可使用如下语句:
AUDIE ALTER,UPDATE ON SC;
取消对SC表的一切审计可使用如下语句:
NOAUDIT ALL ON SC;
在Oracle中,审计设置以及审计内容均存放在数据字典中。其中审计设置记录在数据字典表SYS.TABLES中,审计内容记录在数据字典表SYS.AUDIT_TRAIL中。
四、用户定义的安全性措施
除了系统级的安全性措施外,Oracle还允许用户用数据库触发器定义特殊的更复杂的用户级安全措施。例如,规定只能在工作时间内更新Student表,可以定义如下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure_student
BEFORE INSERT OR UPDATE OR DELETE
ON student
BEGIN
IF (TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN'))
OR (TO_NUMBER (SYSDATE, 'HH24') NOT BETWEEN 8 AND 17)
THEN
raise_application_error
(-20506,
'You may only change data during normal business hours.'
);
END IF;
END;
触发器一经定义便存放在数据字典中。用户每次对Student表执行INSERT,UPDATE或DELETE操作时都会自动触发该触发器,由系统检查当时的系统时间,如果是周六或周日,或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。
类似的,用户还可以利用触发器进一步细化审计规则,使审计操作的粒度更细。
综上所述,Oracle提供了多种安全性措施,提供了多级安全性检查,其安全性机制与操作系统的安全机制彼此独立,数据字典在Oracle的安全性授权和检查以及审计技术中起着重要作用。
原文地址:http://hi.baidu.com/yunfanleo/blog/item/debaafef56925ae4cf1b3e6f.html
一、用户标识和鉴定
在Oracle中,最外层的安全性措施是让用户标识自己的名字,然后由系统进行核实。Oracle允许用户重复标识三次,如果三次未通过,系统自动退出。
二、授权与检查机制
Oracle的权限包括系统权限和数据库对象的权限两类,采用非集中的授权机制,即DBA负责授予与回收系统权限,每个用户授予与回收自己创建的数据库对象的权限。
Oracle允许重复授权,即可将某一权限多次授予同一用户,系统不会出错。Oracle也允许无效回收,即用户没有某种权限,但回收此权限的操作仍算成功。
1. 系统权限
Oracle提供了80多种系统权限,如创建会话、创建表、创建视图、创建用户等。DBA在创建一个用户时需要将其中的一些权限授予该用户。
Oracle支持角色的概念。所谓角色就是一组系统权限的集合,目的在于简化权限管理。Oracle除允许DBA定义角色外,还提供了预定义的角色,如CONNECT,RESOURCE和DBA。
具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵。即可以执行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作。
RESOURCE角色可以创建表,即执行CREATE TABLE操作。创建表的用户将拥有对该表的所有权限。
DBA角色可以执行某些授权命令,创建表,对任何表的数据进行操纵。它涵盖了前两种角色,此外还可以执行一些管理操作,DBA角色拥有最高级别的权限。
例如DBA建立一用户U1后,欲将ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系统权限授予U1,则可以只简单地将CONNECT角色授予U1即可:
GRANT CONNECT TO U1;
这样就可以省略十几条GRANT语句。
2. 数据库对象的权限
在Oracle中,可以授权的数据库对象包括基本表、视图、序列、同义词、存储过程、函数等,其中最重要的是基本表。
对于基本表Oracle支持三个级别的安全性:表级、行级和列级。
(1)表级安全性
表的创建者或者DBA可以把表级权限授予其他用户,表级权限包括:
ALTER:修改表定义
DELETE:删除表记录
INDEX:在表上建索引
INSERT:向表中插入数据记录
SELECT:查找表中记录
UPDATE:修改表中的数据
ALL:上述所有权限
表级授权使用GRANT和REVOKE语句。
(2)行级安全性
Oracle行级安全性由视图实现。用视图定义表的水平子集,限定用户在视图上的操作,就为表的行级提供了保护。视图上的授权与回收与表级完全相同。
例如,只允许用户U2查看Student表中信息系学生的数据,则首先创建信息系学生的视图S_IS,然后将该视图的SELECT权限授予U2用户。
(3)列级安全性
Oracle列级安全性可以由视图实现,也可以直接在基本表上定义。
用视图定义表的垂直子集就可以实现列级安全性,方法与上面类似。
直接在基本表上定义和回收列级权限也是使用GRANT和REVOKE语句。目前Oracle的列级权限只有UPDATE,回收列级UPDATE权限时,Oracle不允许一列一列地回收,只能回收整个表的UPDATE权限。例如,
GRANT UPDATE(Sno,Cno)ON SC TO U2;
把对SC表中Sno列和Cno列的UPDATE权限授予U2用户。
REVOKE UPDATE ON SC FROM U2;
回收了U2用户对SC表中Sno列和Cno列的UPDATE权限。
在Oracle中,表、行、列三级对象自上而下构成一个层次结构,其中上一级对象的权限制约下一级对象的权限。例如当一个用户拥有了对某个表的UPDATE权限,即相当于在表的所有列都拥有了UPDATE权限。
Oracle对数据库对象的权限采用分散控制方式,允许具有WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先。
Oracle把所有权限信息记录在数据字典中,当用户进行数据库操作时,Oracle首先根据数据字典中的权限信息,检查操作的合法性。在Oracle中,安全性检查是任何数据库操作的第一步。
三、Oracle的审计技术
在Oracle中,审计分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。
系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。
Oracle的审计功能很灵活,是否使用审计,对哪些表进行审计,对哪些操作进行审计等都可以由用户选择。为此,Oracle提供了AUDIT语句设置审计功能,NOAUDIT语句取消审计功能。设置审计时,可以详细指定对哪些SQL操作进行审计。例如,
对修改SC表结构或数据的操作进行审计可使用如下语句:
AUDIE ALTER,UPDATE ON SC;
取消对SC表的一切审计可使用如下语句:
NOAUDIT ALL ON SC;
在Oracle中,审计设置以及审计内容均存放在数据字典中。其中审计设置记录在数据字典表SYS.TABLES中,审计内容记录在数据字典表SYS.AUDIT_TRAIL中。
四、用户定义的安全性措施
除了系统级的安全性措施外,Oracle还允许用户用数据库触发器定义特殊的更复杂的用户级安全措施。例如,规定只能在工作时间内更新Student表,可以定义如下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure_student
BEFORE INSERT OR UPDATE OR DELETE
ON student
BEGIN
IF (TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN'))
OR (TO_NUMBER (SYSDATE, 'HH24') NOT BETWEEN 8 AND 17)
THEN
raise_application_error
(-20506,
'You may only change data during normal business hours.'
);
END IF;
END;
触发器一经定义便存放在数据字典中。用户每次对Student表执行INSERT,UPDATE或DELETE操作时都会自动触发该触发器,由系统检查当时的系统时间,如果是周六或周日,或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。
类似的,用户还可以利用触发器进一步细化审计规则,使审计操作的粒度更细。
综上所述,Oracle提供了多种安全性措施,提供了多级安全性检查,其安全性机制与操作系统的安全机制彼此独立,数据字典在Oracle的安全性授权和检查以及审计技术中起着重要作用。
原文地址:http://hi.baidu.com/yunfanleo/blog/item/debaafef56925ae4cf1b3e6f.html
发表评论
-
Oracle连接故障的排除
2024-09-09 22:33 675Oracle版本为11G,操作系统为Windows Ser ... -
Oracle数据库相关系统突然提示“SQLException:违反协议”
2024-02-19 15:50 5195SQLException:违反协议这个异常可能由很多的 ... -
CentOS在Docker中安装Oracle
2024-02-06 12:13 12801.拉取Oracle镜像,并检 ... -
Windows Server安装oracle数据库一直停在82%
2023-02-04 12:01 627网上有个说法:服务器超过一定数量的CPU后,将不能正常安装 ... -
ORA-04030错误处理
2023-02-04 11:52 2709【错误描述】 错误信息如下: ORA-04030:在尝 ... -
ORA-04030错误处理
2023-02-04 11:45 403【错误描述】 错误信息如下: ORA-04030:在尝 ... -
Linux安装MySQL数据库
2019-06-10 22:27 18301.进入安装包所在目录,解压: tar zxvf mysql- ... -
确定MySQL在Linux系统中配置文件的位置
2019-04-14 19:30 27891.通过which mysql命令来查看mysql的安装位置。 ... -
mysql set names 命令和 mysql 字符编码问题
2019-04-12 00:34 1168转自:https://www.cnblogs.com/digd ... -
MYSQL中取当前周/月/季/年的第一天与最后一天
2018-11-17 23:16 2225转自:https://blog.csdn.net/ ... -
Oracle删除大量数据的实践
2016-11-07 18:03 5848一、引言 从来没有 ... -
Oracle 数据库简明教程 V0.1
2016-03-23 21:01 2073供初学者入门学习使用,以开发者常见、常用的知识为主,基本上 ... -
Oracle拆分字符串函数
2016-03-23 10:58 3376create or replace type string ... -
Oracle数据库远程连接无响应
2016-03-21 10:20 4334故障现象: 服务器本机使用sqlplus / as s ... -
Oracle PGA详解
2015-10-21 15:34 11498转自:http://yanguz123.iteye.com/b ... -
Oracle12C导入dmp数据
2015-10-08 23:43 20560Oracle12C,发生了较大的变化。以前熟悉的东西变得陌 ... -
SQLLDR数据导入小结
2015-07-25 22:06 75551.创建数据表 CREATE TABLE ... -
Window7安装Oracle10
2015-03-06 12:14 1631每次安装都要百度,转到自己的博客上,找起来方便,还能增加访 ... -
Oracle SQL Developer 连接 Mysql 数据库
2015-02-25 19:36 3694下载JDBC包,解压缩这里只要mysql-connector- ... -
Mysql数据备份与恢复
2015-02-25 19:15 1373备份/恢复策略 1. 要定期做 mysql备份,并考虑系统可以 ...
相关推荐
为了达到这一目标,Oracle数据库系统提供了多种措施来增强安全控制。首先,通过验证用户名称和口令,Oracle可以防止非授权用户访问数据库。这一步骤是基础的安全防线,确保只有已注册并验证的用户才能与数据库进行...
因此,定期备份Oracle数据库是确保数据安全性的必要措施之一。备份不仅能够防止数据丢失,还能提高系统的整体可用性和稳定性。 ### 二、Oracle数据库备份方式概述 #### 1. 全量备份 全量备份是指备份整个数据库的...
Oracle数据库提供了多种安全特性,如用户权限管理、审计、加密等。了解如何设置和管理这些安全机制对于保护敏感数据至关重要。 十、Oracle在Web应用中的集成 Oracle可以与各种Web应用框架(如Java EE、.NET等)无缝...
Oracle数据库系统基于SQL标准,采用分布式数据库架构,支持多种数据类型,如数值、字符串、日期、二进制等。其主要组件包括数据库实例、表空间、数据文件、控制文件、重做日志文件等。数据库实例是内存结构与后台...
Oracle数据库的备份与恢复是确保数据安全性和业务连续性的重要措施。通过合理的备份策略、多种备份方式的结合以及完善的恢复机制,可以有效地防止数据丢失和损坏,保护企业的核心资产。在实际应用中,需要根据具体...
本文作者王肖刚从Oracle数据库常见的安全问题及其原因出发,提出了一系列应对措施,旨在提高数据库的安全性和稳定性。 一、Oracle数据库常见的安全问题主要包括两方面: 1. 运行系统安全:数据库的稳定运行依赖于...
Oracle提供了多种安全机制,如审计、网络加密、访问控制和角色权限管理,以防止未授权访问和数据泄露。理解并实施这些安全策略,能有效保护数据库免受恶意攻击。 故障排查是数据库管理员的必备技能。当遇到错误日志...
正确使用这些命令和选项,结合监控和日志分析,可以帮助数据库管理员确保Oracle数据库的稳定运行,同时也能在出现故障时迅速定位问题并采取相应措施。因此,对Oracle数据库启动和关闭的深刻理解是数据库管理的关键...
本教程旨在为初学者提供一个全面的Oracle数据库入门指南,帮助你快速掌握Oracle的基础知识和操作技能。 一、Oracle数据库简介 Oracle数据库是由甲骨文公司开发的一款面向企业级的高性能、高可靠性的数据库系统。它...
总的来说,Oracle数据库结合Java的执行,不仅利用了Java的安全特性和强大的功能,还通过数据库级别的安全措施进一步强化了整体的安全性。这种方式为复杂应用程序提供了多层防御,确保了商业数据的安全,满足了数据库...
Oracle数据库提供了多种安全特性来应对这些挑战。 首先,Oracle数据库的核心安全机制是用户安全管理。用户是数据库中的一个名称,每个用户都有自己的权限和访问控制。当用户连接到数据库时,需要提供合法的用户名和...
Oracle数据库提供了多种安全机制,包括用户认证、角色和权限管理、数据加密、审计跟踪等。DBA需要熟练掌握这些功能,确保数据库符合企业的安全政策,同时也要定期审查安全设置,防止潜在的安全漏洞。 ### 备份与...
本文由吴生辉撰写,针对Oracle数据库的通信安全提供了专业指导,强调了通信安全在保护数据机密性和完整性方面的重要性。 1. **Oracle的通信安全措施** - **加密**:Oracle提供了网络加密功能,能够无缝且透明地...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,其数据安全性及稳定性备受赞誉。数据库备份是确保数据安全的重要环节,防止数据丢失或损坏时能够快速恢复。本篇将详细介绍Oracle数据库备份的基本概念...
在连接Oracle数据库时,还需要注意数据库的安全性。应遵循最小权限原则,确保用户只能访问其需要的数据和功能。此外,定期备份数据库,设置合理的权限策略,以及对PL/SQL代码进行审查和测试,都是保障数据库安全的...
虽然给定的部分内容并未提供具体的技术细节,但基于标题和描述,我们可以合理推断出一系列与Oracle数据库管理相关的高级主题。 ### Oracle数据库架构 Oracle数据库采用多层次的架构设计,包括物理存储结构和逻辑...
在企业级应用中,数据库的安全性至关重要,定期进行数据库备份是确保数据安全的重要措施之一。对于Oracle数据库而言,实现自动化的数据库备份不仅可以提高效率,还能降低人为操作失误的风险。本文将详细介绍Oracle...
为了实现这些安全目标,Oracle提供了多种安全保护策略。首先,运行存储安全是基础,确保数据库运行环境的安全,包括服务器硬件、操作系统和网络基础设施的安全配置。其次,数据库的可用性保障涉及敏感数据的保护和...
Oracle数据库是全球广泛应用的关系型数据库系统,其安全性对于企业及组织的数据管理至关重要。数据库的安全管控主要包括数据完整性和访问控制,确保信息不被非法获取、篡改或破坏。Oracle数据库的安全策略涉及用户...