仓酷云

标题: MYSQL网站制作之Oracle用户特权办理与审计 [打印本页]

作者: 乐观    时间: 2015-1-16 22:22
标题: MYSQL网站制作之Oracle用户特权办理与审计
尽管DBaaS模式有缺点,但它还是适合某些客户群体,这为解决方案提供商提供了新的商机。鉴于云服务的增长,解决方案提供商除了拥抱这些技术还有什么选择呢?如果他们不这样做,他们就会冒着被竞争对手击败的风险。但他们不能只想到如何把DBaaS的利润率与企业内部系统相比较。1弁言
信息关于获得乐成长短常主要的,可是假如信息被损坏或被毛病使用,就会给乐成带来威逼。Oracle供应了普遍的平安特征以回护用户的信息免受未经受权的会见及成心或偶然的损坏。这类平安性是在用户到用户,权限到权限的基本上经由过程授与或取消权限来供应的,而且是附加于(自力于)用户的盘算机体系自己已有的平安机制之上。在完成了权限分派的基本上,我们又面对实在时跟踪被利用的体系资本与数据库资本,监测用户对数据库的举动的成绩,这就是年夜型数据库办理体系所必须的审计功效。在这里,我们将配合切磋Orale用户权限分派和审计的完成头脑与办法。
2用户办理形式
DBMS:DataBaseManagementSystem,数据库办理体系,对数据举行会合一致的办理和利用。如今次要的DBMS包含:OracleSQLServer,SybaseAdaptiveServer11,MicrosoftSQLServer6.x,7.x等,在这些DBMS中,都有本人完全的用户办理形式,一样平常都以以下体例举行:
登任命户:DBO,次要用来供应毗连到数据库服务的;
脚色用户:将登任命户分别为某些组,这些组具有各类分歧的数据库操纵权限,而一个登任命户能够饰演分歧的脚色;
DBMS供应了这些用户办理的基础体例,并各自对表、视图、历程、触发器等有各自的审计及办理的办法。
在实践的使用中,假如实践情形同意,能够对实践的一切用户创建一个登任命户(帐号),并对一切的帐号举行周密的权限办理。可是,假如用户的数目是不流动的,并且大概有上百个,那办理的庞大水平及难度便可想而知了。
这就是所谓的单用户-多用户形式。它是指数据库的登任命户形式,一切使用都以一致的用户登录,该用户具有一切表、视图、历程、函数等的一切操纵权限,而这些工具都被DBO所创立和具有,能够将这些用户称为使用用户(寄存在某表中);而登录到数据库的这个用户即为形式用户。实践上,为了避免体系外数据登录,可增添一个连接用户,该用户只能读取一张表,该表纪录了形式用户的登录参数(详细部分能够加密寄存);
这类单-多用户体例在年夜型的MIS体系中,因为实在现复杂,思绪明晰,以是使用是相称多的,其长处是分明的:
(1)设置复杂,出格是受权,能够对照轻松地完成;
(2)办理复杂,只需保护一个形式用户就能够了;
(3)对开辟职员是通明的,即开辟用户以DBO体例登录就能够了;
3计划头脑
以后对照可行的办法的要点是:
(1)一切的实体(表、视图等等)都由一个登任命户创建(DBO)、可是该用户不具有毗连及操纵这些实体的权限(Insert,Delete,Update等等);
(2)对一切的实践用户举行分类,归结为几个详细的脚色(实践脚色);
(3)一种实践脚色对应一个登任命户,创建帐号体系,举行脚色分派、权限设置;
(4)在Application中,某用户毗连时,依据所饰演的实践脚色,以对应的登任命户登录;
(5)依据对应表中对该用户的可用模块(功效),举行得当处置,利用户只在定制的、同意的局限内举行功效操纵及数据库操纵。
(6)创建审计所必要的表,用于具体纪录要跟踪的数据库举动用户的呆板属性、所具有的权限与脚色、每次会见数据库的肇端和停止工夫、表级会见工具、数据操纵体例、数据操纵工具及详细的举措、操纵前后的纪录值等等。
依据以上几点,在一个详细的使用中,触及到的开辟事情包含:
表计划:
(1)实践脚色(组)剖析;
(2)创建使用用户帐户表,该表纪录了该用户所属的组,创建用户组表;
(3)创建一个通用毗连用户(只能检索用户帐户表),一切的使用用户初始都以该用户毗连数据库,然后检索依据实践登录的用户及用户所属组,以该组对应的登任命户举行毗连;
(4)创建模块(功效)表,创建用户、用户组与该表的对应表,即某用户究竟可以举行甚么样的操纵。
权限分派功效计划:
(1)创建模块(功效)办理器,办理一切可用模块的相干信息;
(2)创建用户,用户组权限办理器,办理某用户(组)可以利用的功效。
用户启动使用录时,将依照以下历程举行:
(1)一切用户都以流动的毗连用户举行初始毗连;
(2)用户输出本人的代码及口令,依据帐户表确认该用户;
(3)失掉该用户所属的组(便可以毗连到数据库的登任命户称号)等信息;
(4)从头毗连到数据库,分派脚色;
(5)依据脚色,举行静态数据分片;
(6)检索该用户所属组及该用户可用的模块信息及安排,调剂菜单或界面;
(7)翻开主窗口,停止。
审计功效计划:
一个成熟的审计体系,必要办理良多成绩,好比断定审计地区、怎样纪录审计跟踪文件、搜集甚么样的审计信息、断定几体系资本和人力资本专门用于审计功效、功能下降几是最年夜可接受限制、谁卖力监督审计了局、数据库被损坏后应接纳甚么举动、怎样实行数据库损坏呈报、利用甚么办法来修复损坏了的数据、多长工夫从头考核一次审计办法等等。我们在这里只是复杂谈谈怎样断定审计地区和搜集和办理审计信息。
依据审计地区来分别,审计次要分为语句审计、特权审计、形式工具审计和资本审计。
语句审计是指监督一个大概多个特定用户大概一切用户提交的SQL语句;特权审计是指监督一个大概多个特定用户大概一切用户利用的体系特权;形式工具审计是指监督一个形式里在一个大概多个工具上产生的举动;资本审计是指监督分派给每一个用户的资本数目。我们这里谈的次要是形式工具审计。
(1)形式工具审计的全体头脑
完成审计功效,能够选用Oracle数据库中Sys形式下的三个审计表做审计撑持,分离是AUD$(纪录审计信息)、AUDIT$()和AUDIT_ACTIONS(存储审计跟踪举动范例代码的形貌),固然这类Oracle审计能够捕捉谁做了变动和甚么时分做了变动,但捕捉数据变动长短常坚苦的和费时的。以是我们接纳的是野生创立审计信息表,而且经由过程创建触发器的体例纪录数据变动情形。
(2)依据必要,创建审计模块(功效)办理器(审计信息表),办理一切可用审计模块的相干信息,包含用户ID和用户名、会话标识符、被会见的形式工具名(表、存储历程、索引、触发器等)、被实行大概妄图实行的操纵、操纵的完整代码、工夫和日期戳和利用的体系特权等等。
审计信息表的布局是:
"修正表名"(20),"举措品种"(10),"旧身份号"(18),"旧姓名"(40),"新身份号"(18),"新姓名"(40),"呆板名"(20),"用户"(20),"客户信息"(50),"工夫"DATE,"修正字段名1"(20),"字段名旧值1"(50),"字段名新值1"(50),"修正字段名2"(20),"字段名旧值2"(50),"字段名新值2"(50),"会话号"NUMBER(*),"序号"NUMBER(*)。
依据实践必要,能够调剂赓续字段的数目。
(3)由具有DBA权限的数据库办理员利用和保护审计程序,并卖力保护审计信息及按期回档,和在数据库碰到劫难时的数据库恢复。
4详细完成中的几个难点
(1)由登任命户创立脚色用户
显现的是由登任命户GBASE创立脚色用户GBSJ的界面,在这里还能够把持GBSJ用户对一切数据库表的读写权限,同时能够扣问是不是将表布局及数据复制到以后用户。





(2)数据分片手艺
起首要申明的是甚么是数据分片。在ORACLE的用户权限分派中,只供应对表、函数、同义词、视图、包等的Insert,Update,Select,Delete,Execute等操纵,并未供应字段级的权限设置(实践上,对年夜型数据库举行字段级的权限设置固然带来了平安性方面的优点,但关于功能的存在必定的影响),因而,关于年夜型MIS体系,举行数据的分片是在所不免的。
一样平常地,一个典范的MIS数据库平台计划是如许的,如。




对用户权限的分派是经由过程对ORACLE一时体系表来完成的:
①在必要分片的表(CUSTOMER)中创建相干字段,如SGRANT_NUMnumber(20)及所属部门SUNIT_IDvarchar(10),
②对该表创立静态视图CUSTOMER_PV
select*fromCUSTOMERAwhereCD_WAREHOUSE.SUNIT_IDisnullorexists(select*fromCUSTOMERBwhereA.SUNIT_ID=B.SUNIT_ID
and(B.SGRANT_NUM>=TO_NUMBER(SUBSTR(USERENV(CLIENT_INFO),1,10))
and(B.SGRANT_NUM<=TO_NUMBER(SUBSTR(USERENV(CLIENT_INFO),11,10))))
③在用户登录体系时修正用户情况client_info中的分片号;
④如许,对计划者,不存在分片成绩,对终极用户,可界说该用户的构造分片号来束缚该用户可以存取的数据。
道理图如。




如许举行数据分片的长处是:
①由服务器主动完成,对计划无任何影响;
②速率快,对巨量数据无分明影响;
弱点是:
①只能依据构造(或其他)举行纵向分片,不敷天真;
②手艺完成庞大,主表的变动将间接影响视图(必要从头天生);
③一旦构造机构变更,则分片必要从头设置。
(3)审计功效完成的过程当中没法捕捉举动用户的客户信息和举动举措信息和举措前后的数据
①捕捉客户信息的办法:
经由细心查阅Oracle数据库文档,终究发明了能够经由过程挪用Oracle自己的USERENV函数完成此项功效。捕捉呆板名的办法是USERENV(TERMINAL),捕捉登录盘算机的用户名的办法是USERENV(CLIENT_INFO),捕捉登录数据库的用户名的办法是间接读出Oracle的user值。
②捕捉举动举措的办法:
捕捉以后会话标识符的办法是USERENV(SESSIONID)。
③捕捉举动举措前后的数据的办法:
在数据库中建触发器,针对举动举措的表,及时地将举措前后的数据拔出审计表中。
审计的把持界面见:




在这个把持界面下,我们可以完成按呆板名、用户和会话监督和办理审计信息,扫瞄以后举动会话的会话信息,并可经由过程前提过滤出审计信息,同时完成审计信息回档和打印等功效,并且经由过程审计信息切换功效,能够扫瞄已回档审计信息。
今朝,这个形式审计功效已完成,并已使用在某年夜型体系中,获得了使人中意的效果。
5停止语
Oracle用户权限分派与保护和审计都是很庞大的课题,一段工夫内,不管对数据库办理员仍是程序计划职员来讲,都将是一个很年夜的应战。办理好这个成绩,是包管年夜型数据库体系的数据平安性、正确性、便利性、天真性和可移植性将为企业信息化建立的基本。因为笔者程度及精神无限,尚不克不及在此范畴有更高的建立,只但愿藉此文与人人配合研究。
与数据库相关的流程的逐渐标准化,使得解决方案提供商能以更便捷的方式提供服务、部署应用程序、规划容量和管理资源。DBaaS模式还有助于减少数据和数据库的冗余度并提升整体服务质量。
作者: admin    时间: 2015-1-19 09:40
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
作者: 谁可相欹    时间: 2015-1-27 11:30
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
作者: 乐观    时间: 2015-2-5 08:45
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
作者: 莫相离    时间: 2015-2-11 08:23
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
作者: 小魔女    时间: 2015-3-2 03:48
你可以简单地认为适合的就是好,不适合就是不好。
作者: 精灵巫婆    时间: 2015-3-11 02:08
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
作者: 山那边是海    时间: 2015-3-17 19:08
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
作者: 海妖    时间: 2015-3-24 20:44
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2