D盘

workspace
posts - 165, comments - 53, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

国内证券信息化现状及技术探讨

您对这篇文章中涉及的股票有任何问题,您对手中持有的股票有任何担心,
您对大盘走势有任何疑惑,您还关心哪些股票的趋势,随时可以免费致电--

金融界服务中心:010—66210650(30部中继电话)
周一~周五:上午8:30~下午5:30,公休日:上午9:30~下午5:30

     中国证券信息化从1992年开始起步的,其间证券交易系统经历了从半自动到全自动、从单层次计算机架构到CLIENT/SERVER架构的飞跃。而证券交易所使用的硬件平台也从基于Inter80286的文件服务器提升到现在的基于PII、PIII 的文件和数据服务器,硬件性能有了大幅提高,将证券交易业务相关的关键计算核心从PC服务器移植到小型机平台也是证券市场发展的必然趋势。(千金难买牛回头 我不需再犹豫)

     中国证券行业作为一个新兴的金融体系,正处于一个逐步开放的、完善、规范的市场大环境中,面临着国内外激烈的竞争。而稳定、可靠、高效的证券交易系统对企业创造竞争优势必不可少。与业务紧密关联的信息系统及其运行平台的稳定性、可靠性及运行效率在很大程度上规定和制约了券商可为用户提供的服务品种、服务内容以及服务质量。在如今异常激烈的竞争环境中,由于信息系统不稳定或服务的不完整而产生的负面影响将是非常巨大的,它不仅会导致券商巨大的经济损失,而且会使企业失去对客户的吸引力,并将已有的客户推到竞争对手中去。(剖析主流资金真实目的,发现最佳获利机会!)

     信息化的现状

     就目前证券信息化的总体而言,当前证券行业的交易系统大多数是建立在营业部一级的,即有关客户及部门的交易数据都存储在营业部的数据服务器中。由于历史的原因及从经济角度考虑,营业部服务器一般采用相对廉价的低档服务器系统。 CompaqProliant系列、IBMNetfinity系统以及HPNetserver 系列是当前国内证券行业最常见的服务器硬件平台。除此以外,由国内企业(如联想等)生产的PC服务器也逐渐在证券营业部使用。

     与几乎所有其他行业一样,PC及PC服务器在证券业的流行在一定程度上得益于微软强大的软件支持。在文件服务器方面,由于与交易所之间交换文件的需要以及受主要证券分析系统对平台的要求所制约,NovellNetware 一直是证券业局域网操作系统的代名词,而且在以后可能相当长一段时间内仍将是。在数据服务器方面,早期建立在Xbase数据文件上的交易模式现已成为凤毛麟角,且很难跨进21 世纪的大门。随后出现了为业界推崇的CLIENT/SERVER体系架构,试图通过将核心数据与网络分离来实现安全性、可靠性以及传输效率。在1995年左右,国内证券界曾一度使用建立在微机服务器上的Netware3.1X+Sybase数据服务器软件组合平台,但这一组合的执行效率不甚理想,不久就被微软的WINDOWSNT+MSSQLSERVER所取代。除了性能提高以外,后者的可视化用户友好界面使电脑集成商的安装人员和证券营业部的电脑管理员可以方便地进行维护, 直到现在, PCSERVER + WINDOWSNT + MSSQLSERVER仍然是证券业交易系统支持平台的主流。

     与此同时,证券网络技术也有了长足的发展。主干速率10兆的以太网络现在只能用于证券营业部的一个远程大户室中。营业部的主干网络已主要使用快速以太网或更高档的千兆位以太网。值得注意的是,千兆位以太网络正逐渐成为证券营业部的局域网主干。由于管理的需要,证券公司总部(或地区总部)与各营业部之间通常还通过路由器建立了广域网,以便进行信息传递以及运行诸如中央监控、OA系统等软件。其证券交易的方式也从原来单一的柜台手工交易服务到现在诸如:自助委托、电话委托、远程委托及Internet委托交易等。证券营业部服务方式也从传单式的信息服务到目前人工座席的贴心服务。

     证券信息化面临WTO的挑战

     不但证券业内部环境受到了前所未有的挑战。其外部环境:国内外政治、经济等多种因素的变化,也使得我国证券业的发展面临更大的挑战:

     1、市场走向成熟,竞争日益加剧,许多证券公司开始购并以期降低经营成本;区域型证券公司更需要从狭缝中求生存。

     2、证券主管机构方面:需要提高对营业部、技术、人员等各方面的管理水平;确保股民的投资权益,监督证券公司营业部的计算机系统要达到安全性、可靠性、可操作性三大目标。

     3、交易所方面:需要保证营业部越来越规范地经营, 并且能够满足在资本市场规模扩大、上市公司增加、新的证券交易业务(如融资、融券的信用交易)不断涌现之后出现的新要求,又能迅速对市场变化作出反应,调整业务内容。

     4、广大股民方面:要求证券公司提供更高质量的服务。 如个股的历史财务数据和报表、产业分析报告、上市公司的相关公开信息、技术分析工具、股评、交易法规和政策等。

     5、上市公司方面:需要在激烈的竞争环境中选择信誉好的交易所进行交易。

     6、随着改革开放力度加大, 国内的资本市场将会面临市场开放的问题(即国外资金进入国内市场),国内证券业要做好与国外公司竞争的准备。

     7、计算机网络新技术(电子商务)允许用户利用证券公司的企业网进行交易,对证券公司传统业务部柜台交易方式产生巨大冲击。要求证券公司大胆采用新技术,提高营业收入。

    《中国证券报》

    张大剑

    2000年2月21日

    

posted @ 2008-03-14 14:26 巴西木 阅读(224) | 评论 (0)编辑 收藏

证券行业客户关系管理系统解决方案

http://www.sina.com.cn 2003年02月21日 10:25 计算机世界网

  解决方案全称:证券行业客户关系管理系统解决方案

  开发商:上海复旦金仕达计算机有限公司

  一、开发背景

被过滤广告 被过滤广告

  在高速发展的中国证券业环境中,竞争日趋激烈。对于证券公司各级管理者来说,如何对公司及下属营业部的经营状况有充分、及时、准确的了解,进而制定公司各方面的发展计划;如何为客户提供更高水准的服务及更专业的投资建议,以进一步巩固和发展长久的客户关系,都是至关重要的。下面的一些问题是证券公司普遍关心的。

  1、公司目前的经营状况、经营风险,利润来源及变化趋势如何。

  2、哪些客户对公司来说是最重要的,如何更好的服务于他们;哪些客户正在流失,原因在何处。

  3、哪些客户的投资收益最大,哪些客户的投资亏损最多,如何从中推广经验及吸取教训。

  4、应如何根据客户的具体交易情况,提出投资建议。

  上述问题来自于公司不同职能部门的管理者,其中包括经纪业务总部、投资银行部、财务部、电脑部等,他们需要对不同的方面作决策,所需的信息来源各有不同。如何对这些问题作及时、详尽、准确的回答,证券公司总部目前的信息系统很难实现。首先,数据分散在各个营业部及不同的应用系统中,且各个系统都是相互独立的;其次,没有好的系统帮助决策者揭示业务的关键因素,再有没有一个灵活的工具帮助使用者方便地对客户地行为进行分析。因此,建立证券的客户关系管理系统(数据仓库系统,决策支持系统,客户关系管理子系统),显得十分重要。金仕达公司集多年的证券业服务经验,以及对数据仓库技术的深入理解,推出的金仕达客户关系管理系统将为解决上述问题提供完整的方案

  二、方案详细介绍

  方案目标

  1、建造一个管理公司内部各种有效数据,组织这些数据,提供多种角度分析数据以提供决策支持活动

  2、把营业部的历史数据更有效的聚集起来,节省磁盘空间.

  3、提供一个新的分析问题的手段和方法.在查询大数据量时提高查询速度.

  4、解决原有交易系统统计分析功能薄弱的问题

  5、提供一个高效的灵活报表工具

  6、它以时间为基础来管理数据,允许用户回顾并了解公司的过去与现在.

  7、以时间为基础来跟踪,分析和预测公司的交易情况,佣金收入,客户的动态

  8、用户可以通过固定报表,灵活报表、多维分析,对比分析,向下钻取,向上钻取,交叉钻取,旋转,切片等多种形式实现多个层面的数据访问.

  业务功能

  1、交易分析:证券交易,新股交易,成交委托比,证券委托,换手率,证券流量,现金流量,资金交易

  2、客户情况:客户流动,客户分布,客户活动

  3、资产分析:资金余额,证券余额,盈亏分析,套牢程度,资产,利润,持仓率

  4、排行榜:成交金额,委托方式,托管市值,资金交易,资金余额,资产情况,佣金情况,贡献率,热门股等等排行

  5、客户分析:客户资料查询,客户证券交易,客户资金存取,客户相对收益,客户对帐单,客户中意的证券,客户喜欢的交易方式、客户盈亏情况、客户交易费用、客户套牢程度、客户贡献率

  6、每日提醒

  7、资讯主动通知服务

  8、每日工作

  实现技术、平台、开发工具

  ●操作系统平台:WINDOWS2000 ADVANCE SERVER

  ●软件开发平台:IIS,SQL Server2000,Analysis Services,Office2000,IE

  ●相关开发工具:VB6.0, Excel2000,Frontpage2000,VI6.0,VC6.0

  ●客户端平台:Windows98(NT,2000),Ie5.0

  市场销售及竞争情况

  客户关系管理系统v1.0是证券行业最早推出的解决方案,先后在10多家营业部进行了试用;今年与某证券公司合作开发客户关系管理系统v2.0是目前证券行业真正投入使用的第一套系统,目前公司正与两家证券公司进行合作。目前开发该系统的主要有:美国艾克国际公司、创智公司、普元公司,这三家公司都不是长期从事证券行业的公司,对证券行业的了解不是十分深入,且目前都没有成功案例。

  成功案例介绍

  用户单位名称:广东证券

  背景情况

  广东证券股份有限公司的分支机构----广东证券顺德管理总部成立于1992年11月,是顺德市最早成立的证券公司。经过几年的发展,现已成为顺德市规模最大,实力最雄厚的证券经营机构,拥有绝对的市场份额。广东证券顺德管理总部建设CRM系统的设想是基于当前经纪业务面临的挑战和未来发展的方向而提出的。从顺德管理总部在顺德市证券市场的地位来看,广证占有绝对的市场份额,如果进行价格战,对广证顺德管理总部来说是得不偿失的。只有在服务上下功夫,提高服务的质量和特色,才能在市场竞争中赢得胜利,所以坚定不移地走服务的道路、走信息化服务、个性化服务的道路才是广证顺德的长久发展之道。

  在市场方面,广证顺德在顺德市的证券市场中拥有绝对的客户份额。由于成立时间比较早,加上脚踏实地的经营,在广证顺德积累了一大批优质的客户,他们是广证顺德利润来源的主要贡献者。但是,随着证券市场竞争加剧,在短短时间内顺德地区新增加了多家证券公司的服务机构,由原来的三四家,增加到现在的11家;佣金自由化政策的出台,对广证顺德客户份额造成了猛烈的冲击,特别对于优质客户的流失,对广证顺德利润保证构成了严重的威胁。在这种情况下,广证顺德采取了一系列的措施,加大IT投入、加强服务质量,在传统的经纪业务领域和对手展开竞争,但这种竞争由于具有同质、无个性化特点等特征,更多地受到价格因素的影响,所以广证顺德处在被动防守的境地。这时候,研究开发个性化的服务,进行全面的业务创新和服务创新成了广证顺德必然选择。而实施客户关系管理,虽然不能直接产生业务创新和服务创新,但它能帮助公司领导、营业部经理、客户经理发现真正有价值的客户,找到这些客户的迫切需求,从而进行针对的业务创新和服务创新,实现经纪业务更高层次的服务,在竞争中赢得主动。

  在客户服务方面,广证顺德一开始就在不断尝试不同的服务手段和方式,比如,广证顺德开始阶段采用客户经理和信息研发人员合作服务的方式,一个客户经理配备一个信息研发人员,在对客户服务过程中,两个人相互配合,一个负责客户的跟踪服务,一个负责信息收集整理研究,从而希望能给客户提供一些专业和周到的服务。但是,在这种方式下,由于研发人员的力量、精力有限,只能向客户提供别人的研究成果,对于信息的准确性和针对性没有任何体现,所以对客户的服务也是比较肤浅,实际的效果是没有对客户产生积极的影响。广证顺德在发现这个问题之后,积极地调整了组织结构,把素质良好、具有较强分析研究能力的信息人员集中到了区域管理总部,专门成立了相应的研究后台部门,在这个部门里,所有的研究人员根据市场的特点,专门进行金融品种、行业、热点、市场动态、大盘走势的研究,并根据对信息地掌握,产生自己的投资组合,并在资产管理和客户进行应用。而这个部门最大的功能还在于对广证顺德所有的客户经理提供资讯信息服务,使得这种服务更加专业化、更加具有权威性、更加准确,客户经理在整个服务过程中更有信心,服务质量和效率能得到明显提高。但是,在这个过程中,广证顺德决策者们也意识到下面一些问题:

  ●后台研究部门的研究内容和客户的需求存在脱节,研究成果存在浪费;

  ●后台研究部门的研究方向没有针对性,研究人员对广证的客户群体缺乏清楚地认识;

  ●后台的研究部门和前台的服务部门没有建立信息通道,双方的信息不能实现共享;

  ●客户经理的服务缺乏目的性,不能针对不同的客户选择不同的研发成果;

  ●后台研究部门和前台服务部门不能形成一定的监督制约机制,无法形成互相促进提高的反馈循环。

  广证顺德的管理者们清楚地认识到,这些问题的解决只有依靠建立客户关系管理系统。一方面改造业务流程,提高后台研究部门和前台服务部门的联络、沟通、监督;另一方面全面整合客户资料和数据,为研究人员、客户经理提供全面真实的客户信息,从而进行针对性地研究和服务;最后是实现后台和前台的信息共享。

  在管理方面,广证顺德沿袭的是证券营业部经营的一贯体制,即总部到营业部,营业部到客户经理的三级管理模式。虽然在这种模式下,广证顺德实行了成本、收入按营业部单独核算,人员的编制、薪酬有营业部决定的方法,去进一步提高客户服务竞争力,但是,随着证券市场竞争模式和方向的转变,建立强大的营销体制,更多地争夺客户,成为任何一个证券公司考虑的大事,建立一个完善的经纪人体制已经成为证券经纪营销的基础。在这方面,只有将客户和客户经理或者经纪人,经纪人和营业部或者营销部门建立有机的联系,才能在市场的竞争中形成一个强有力的团队,才能在客户拓展和服务上不断进步。建立客户关系管理系统不但能在客户分析和服务业务流程上发挥积极的贡献,而且对建立一个良好的经纪人管理体制起到不可忽视的作用,随着该系统的不断完善,以此为基础的经纪人工作平台和管理平台的建立,必然为广证顺德实现从传统经纪业务到当前经纪营销业务的转型打下坚实的基础。

  业务实施过程

  广证顺德CRM系统建设从广证顺德和金仕达签订合同开始,上线运行,经历了下面三个阶段:需求调研、设计开发、调试培训。在需求调研阶段深入到顺德管理总部的各个部门以及下辖营业部进行针对性的调查和座谈,了解他们的基本思路和设想,业务流程、急需解决的问题等等,双方抱着求实、创新的态度,认真考虑解决问题的途径和办法,总结出了广证顺德基本需求。设计开发严格遵从ISO9001规范进行开发,通过现场的安装使用、培训,逐步将广证顺德的管理体系按照以客户为中心的理顺,从而真正发挥系统的效果。广东证券顺德管理总部CRM系统基于柜台系统历史数据以及其他相关数据源,构建数据仓库系统,以数据仓库系统为核心提供区域总部各类人员使用的相关业务系统,可以分为经理管理系统、客户经理系统、分析师系统、维护管理系统。经理管理系统、客户经理系统、分析师系统主要完成数据展示、业务报表和信息查询功能,提供给CRM业务人员使用。维护管理系统主要提供给证券公司信息技术人员使用,是CRM系统的基础和支持平台,主要用于从柜台系统(生产系统)和其它数据接口(如客户背景资料、证券市场资料等人工录入管理库表)采集抽取、清洗整理、格式转换、加载入库,以及整个CRM系统的日常管理和维护。系统的使用者以及数据流如下图所示:


.

 

  系统提供的主要业务功能包括

  ●交易分析:证券交易,新股交易,成交委托比,证券委托,换手率,证券流量,现金流量,资金交易

  ●资产分析:资金余额,证券余额,盈亏分析,套牢程度,资产,利润,持仓率

  ●排行榜:成交金额,委托方式,托管市值,资金交易,资金余额,资产情况,佣金情况,贡献率,热门股等等排行

  ●客户分析:客户资料查询,客户证券交易,客户资金存取,客户相对收益,客户对帐单,客户中意的证券,客户喜欢的交易方式、客户盈亏情况、客户交易费用、客户套牢程度、客●户贡献率

  ●每日提醒

  ●资讯主动通知服务

  ●每日工作

  系统开发采用的实现技术、平台、开发工具如下:

  ●操作系统平台:WINDOWS2000 ADVANCE SERVER

  ●软件开发平台:IIS,SQL Server2000,Analysis Services,Office2000,IE

  ●相关开发工具:VB6.0, Excel2000,Frontpage2000,VI6.0,VC6.0

  ●客户端平台:Windows98(NT,2000),Ie5.0

  效果与反馈

  系统实施成功已经两个多月了,广证顺德利用该系统成功的改变了传统的经营思路和管理模式,真正走向了以经纪人为核心,以客户服务为基础的管理新路。系统的成功使用,极大的提高了广证顺德的管理服务水平,得到了用户的极大好评。

  其他具体描述

  客户关系管理系统永远不会是一种成型的产品,它将会根据不同用户的管理模式而变。因此系统的投入是十分巨大的,由于短期内系统带来的效益不是十分明显,每个公司都会是采取分阶段实施的方式进行。

  由于这是一套管理系统,又采用了数据仓库技术,因此实际运行时系统的软硬件投资会超过一百万,对于管理人员的培训也是十分重要的,投入也会十分巨大。

posted @ 2008-03-14 14:23 巴西木 阅读(276) | 评论 (0)编辑 收藏

版本控制最关键的一件事是保证数据的安全性,不能因为磁盘损坏,程序故障造成版本库无可挽回的错误,为此必须制定较完备的备份策略。
在Subversion中,我们有三种备份方式:完全备份,增量备份和同步版本库。

1. 完全备份:

最常见和简单的备份就是直接使用拷贝命令,将版本库目录拷贝到备份目录上,就可以了。但是这样不是很安全的方式,因为如果在拷贝时版本库发生变化,将会造成备份的结果不够准确,失去备份的作用,为此Subversion提供了“svnadmin hotcopy”命令,可以防止这种问题。
比如有如下版本库:

D:\svnroot
├─project1
│     ├─conf
│     ├─dav
│     ├─db
│     │     ├─revprops
│     │     ├─revs
│     │     └─transactions
│     ├─hooks
│     └─locks
└─project2
       ├─conf
       ├─dav
       ├─db
       │     ├─revprops
       │     ├─revs
       │     └─transactions
       ├─hooks
└─locks

如果要把project1备份到D:\svnrootbackup目录下,只需要运行:svnadmin hotcopy d:\svnroot\project1 d:\ svnrootbackup \project1

PS:如果我们目录下有很多版本库,需要为每个版本库写这样一条语句备份,必须想办法优化这个过程。为此,建立以下的2个bat文件,

simplebackup.bat:
@echo 正在备份版本库%
1
@%SVN_HOME%
\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本库%1成功备份到了%
2

backup.bat:
echo off
rem Subversion的安装目录
set SVN_HOME="D:\Subversion"
rem 所有版本库的父目录
set SVN_ROOT=D:\svnroot
rem 备份的目录
set BACKUP_SVN_ROOT=D:\svnrootbak
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立备份目录%BACKUP_DIRECTORY%
>>%SVN_ROOT%/backup.log
mkdir %BACKUP_DIRECTORY%
rem 验证目录是否为版本库,如果是则取出名称备份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simplebackup.bat "%%~fI" %%~nI
goto end
:checkBack
echo 备份目录%BACKUP_DIRECTORY%已经存在,请清空。
goto end
:
end



使用的时候,只需要修改backup.bat开头的三个路径,将两个脚本拷贝到"SVN_ROOT"下就可以了。根据以上的配置,你只需要运行backup.bat,就可以把"SVN_ROOT"下的版本库都备份到"BACKUP_SVN_ROOT"里,并且存放在备份所在的目录里。

2. 增量备份:
尽管完全备份非常简单,但是也是有代价的,当版本库非常巨大时,经常进行完全备份是不现实的,也并不必要,但是一旦版本库在备份之间发生问题,该如何呢,这里我们就用到了增量备份。
增量备份通常要与完全备份结合使用,记录着每次Subversion提交的变化,然后在需要恢复时能够回到最新的可用状态。
我们使用的是,svnadmin dump命令进行增量的备份,使用方法是:
svnadmin dump d:\sourcecode\project1 --revision 15 --incremental > d:\sourcecode\dumpfile

上面的命令实现了对修订版本15进行增量的备份,其中的输出文件dumpfile只保存了修订版本15更改的内容

恢复增量备份时,使用方法是:
svnadmin load d:\sourcecode\project1 < d:\sourcecode\dumpfile
上面的命令实现了对增量备份文件恢复到版本库project1中

使用钩子脚本Hooks实现自动增量备份:
1) 建立deltabackup.bat文件,内容为:
@echo 正在备份版本库%2......
%SVN_HOME%\bin\svnadmin dump %SVN_ROOT%\%1 --incremental --revision %2 >> %DELTA_BACKUP_SVN_ROOT%\%1.dump
@echo 版本库%2成功备份到了%3!
2) 建立post-commit.bat文件,内容为:
echo off
set SVN_HOME="C:\Program Files\Subversion"
set SVN_ROOT=D:\svnroot
set UNIX_SVN_ROOT=D:/svnroot
set DELTA_BACKUP_SVN_ROOT=D:\svnrootbak\delta
set LOG_FILE=%1\backup.log
echo backup revision %2 >> %LOG_FILE%
for /r %SVN_ROOT% %%I in (.) do if D:/svnroot/%%~nI == %1 %SVN_ROOT%\%%~nI\hooks\deltaBackup.bat %%~nI %2
goto end
:end
3) 把以上两个脚本可以直接拷贝到版本库的hooks目录下,就可以实现版本库的自动备份。

3. 同步版本库:
同步机制,可以实现一个版本库同另一个版本库的同步(但好像只是单向的),我们可以用来实现版本库的备份或镜像。
例如:同步版本库d:\sourcecode\project1
1) 新建一个空的版本库project2
运行命令:
svnadmin create d:\sourcecode\project2

2) 为新的版本库创建pre-revprop-change钩子脚本(hook script)
在d:\sourcecode\project2\hooks目录下新建一个空的pre-revprop-change.bat文件

3) 初始化版本库
运行命令:
svnsync init file:///d:/sourcecode/project2 file:///d:/sourcecode/project1

4) 同步版本库
运行命令:
svnsync sync file:///d:/sourcecode/project2
  
5) 至此,版本库同步已经完成。
在使用新的版本库之前,还需要根据需要对版本库的访问权限等进行配置。

使用钩子脚本Hooks实现自动同步:
1) 建立post-commit.bat文件,内容为:
echo off
set SVN_HOME="D:\Subversion"
%SVN_HOME%\bin\svnsync sync     --non-interactive svn://localhost/project2
2) 把post-commit.bat文件放到版本库project1下的hooks目录下,这样project1每次提交,都会引起project2的同步


转自:http://hi.baidu.com/vb1980/blog/item/1306ee226ff370a74623e8a9.html

posted @ 2008-03-06 10:25 巴西木 阅读(316) | 评论 (0)编辑 收藏

权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:

   Object 对象级

   System 系统级

   Role 角色级

  这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。

  对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角色或用户。用户可以通过角色继承权限,除了管理权限外角色服务没有其它目的。权限可以被授予,也可以用同样的方式撤销。

  建立和使用角色

  如前所诉,角色存在的目的就是为了使权限的管理变得轻松。建立角色使用CREATE ROLE语句,他的语法如下:

CREATE ROLE role_name IDENTIFIED BY password
CREATE ROLE role_name IDENTIFIED EXTERNALLY
CREATE ROLE role_name IDENTIFIED GLOBALLY
转自:http://blog.csdn.net/wwweducn/archive/2006/03/19/629434.aspx
  缺省情况下建立的角色没有password或者其他的识别。如果使用IDENTIFIED BY 子句建立,那么角色不会自动响应,必须用SET ROLE激活。

SET ROLE role_name IDENTIFIED BY password

  EXTERNALLY和GLOBALLY类型的角色由操作系统和ORACLE Service server验证。通常用户需要权限修改应用程序中使用的表单中的数据,但是只有在应用程序运行时而不是在使用ad hoc工具时,这种上下文敏感安全可以通过有PASSWORD的角色来实现。当用户在应用程序内部连结数据库时,代码将执行SET ROLE命令,通过安全验证。所以用户不需要知道角色的password,也不需要自己输入SET ROLE命令。

  对象权限

  对象权限就是指在表、视图、序列、过程、函数或包等对象上执行特殊动作的权利。有九种不同类型的权限可以授予给用户或角色。如下表:
权限 ALTER DELETE EXECUTE INDEX INSERT READ REFERENCE SELECT UPDATE
Directory no no no no no yes no no no
function no no yes no no no no no no
procedure no no yes no no no no no no
package no no yes no no no no no no
DB Object no no yes no no no no no no
Libary no no yes no no no no no no
Operation no no yes no no no no no no
Sequence yes no no no no no no no no
Table yes yes no yes yes no yes yes yes
Type no no yes no no no no no no
View no yes no no yes no no yes yes
 对象由不止一个权限,特殊权限ALL可以被授予或撤销。如TABLE的ALL权限就包括:

   SELECT,INSERT,UPDATE和DELETE,还有INDEX,ALTER,和REFERENCE。

  如何看这个表我们以ALTER权限为例进行说明

  ALTER权限

  允许执行ALTER TABLE和LOCK TABLE操作,ALTER TABLE可以进行如下操作:

    . 更改表名

    . 增加或删除列

    . 改变列的数据类型或大小

    . 将表转变为分区表

  在SEQUENCE上的ALTER权限允许执行ALTER Sequence语句,重新给sequence分配最小值、增量和缓冲区大小。

  系统权限

  系统权限需要授予者有进行系统级活动的能力,如连接数据库,更改用户会话、建立表或建立用户等等。你可以在数据字典视图SYSTEM_PRIVILEGE_MAP上获得完整的系统权限。对象权限和系统权限都通过GRANT语句授予用户或角色。需要注意的是在授予对象权限时语句应该是WITH GRANT OPTION子句,但在授予系统权象时语句是WITH ADMIN OPTION,所以在你试图授予系统权限时,使用语句WITH GRANT OPTION系统会报告一个错误:ONLY ADMIN OPTION can be specified。在考试中要特别注意这个语法和错误信息。

  角色和角色权限

  角色权限就是将属于用户的权限授予一个角色。任何权限都可以授予给一个角色。授予系统权限给被授予者必须使用WITH_ADMIN_OPTION子句,在会话期间通过SET ROLE语句授予或撤销角色权限。然而,角色权限不能依靠存储在SQL中的权限。如果函数、程序、包、触发器或者方法使用另一个计划拥有的对象,那么就必须直接给对象的拥有者授权,这是因为权限不会在会话之间改变。

  授予和撤销权限

   给用户或者角色授予权限使用GRANT 语句,GRANT语句的语法如下:

GRANT ROLE(或system privilege) TO user(role,Public) WITH ADMIN OPTION(可选)

  对象权限被授予 WITH GRANT OPTION,

  权限和数据字典

  数据字典是ORACLE存储有关数据库结构信息的地方,数据本身存放在其他地方,数据字典由表和视图组成。在考试中关于数据字典最容易考的内容是:查看那一类权限已经被授予。比如DBA_TAB_PRIV包含了用户授予给另一用户的对象权限和在授予时是否带有WITH GRANT OTPION子串的信息。注意DBA_TAB_PRIV不仅仅包含了对表的权限的关系,他还包括函数、包、队列等等上的权限的关系。下表列出了所有的权限和角色的数据字典视图:

  表: 权限的数据字典视图

视图 作用
ALL_COL_PRIVS 表示列上的授权,用户和PUBLIC是被授予者
ALL_COL_PRIVS_MADE 表示列上的授权,用户是属主和被授予者
ALL_COL_RECD 表示列上的授权,用户和PUBLIC是被授予者
ALL_TAB_PRIVS 表示对象上的授权,用户是PUBLIC或被授予者或用户是属主
ALL_TAB_PRIVS_MADE 表示对象上的权限,用户是属主或授予者
ALL_TAB_PRIVS_RECD 表示对象上的权限, 用户是PUBLIC或被授予者
DBA_COL_PRIVS 数据库列上的所有授权
DBA_ROLE_PRIVS 显示已授予用户或其他角色的角色
DBA_SYS_PRIVS 已授予用户或角色的系统权限
DBA_TAB_PRIVS 数据库对象上的所有权限
ROLE_ROLE_PRIVS 显示已授予用户的角色
ROLE_SYS_PRIVS 显示通过角色授予用户的系统权限
ROLE_TAB_PRIVS 显示通过角色授予用户的对象权限
SESSION_PRIVS 显示用户现在可利用的所有系统权限
USER_COL_PRIVS 显示列上的权限,用户是属主、授予者或被授予者
USER_COL_PRIVS_MADE 显示列上已授予的权限,用户是属主或授予者
USER_COL_PRIVS_RECD 显示列上已授予的权限,用户是属主或被授予者
USER_ROLE_PRIVS 显示已授予给用户的所有角色
USER_SYS_PRIVS 显示已授予给用户的所有系统权限
USER_TAB_PRIVS 显示已授予给用户的所有对象权限
USER_TAB_PRIVS_MADE 显示已授予给其他用户的对象权限,用户是属主
USER_TAB_PRIVS_RECD 显示已授予给其他用户的对象权限,用户是被授予者
--------------------------------------------------------------------------
角色相关的视图.
一. 概述
   与权限,角色相关的视图大概有下面这些:
    DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限
    USER_SYS_PRIVS:   当前用户所拥有的系统权限
    SESSION_PRIVS:     当前用户所拥有的全部权限
    ROLE_SYS_PRIVS:     某个角色所拥有的系统权限
    注意: 要以SYS用户登陆查询这个视图,否则返回空.
    ROLE_ROLE_PRIVS:    当前角色被赋予的角色
   SESSION_ROLES:      当前用户被激活的角色
    USER_ROLE_PRIVS:   当前用户被授予的角色
    另外还有针对表的访问权限的视图:
    TABLE_PRIVILEGES
    ALL_TAB_PRIVS   
    ROLE_TAB_PRIVS:     某个角色被赋予的相关表的权限
       ...   
二. Examples
   1. 查询当前用户所拥有的权限
        Select * from session_privs;
   2.   查询某个用户被赋予的系统权限.
         可以有多种方式
        Select * from user_sys_privs;
        或者: select * from DBA_SYS_PRIVS where grantee='XXX'
       (需要当前用户拥有DBA角色)
    3. 查询当前用户被授予的角色:
        1. Select * from SESSION_ROLES order by ROLE  
            说明: 这个查询会返回当前用户所被授予的全部角色, 其中包括嵌套授权的
角色. 例如将DBA角色授予了一个用户,DBA角色已经被授予的角色(例如
exp_full_database 和 imp_full_database)也会被查询出来    
        2. Select * from USER_ROLE_PRIVS       
     4. 查询某一角色被赋予的系统权限
         Select Privilege from ROLE_SYS_PRIVS where ROLE=&Role
        输入 role='CONNECT'
         输出:
           PRIVILEGE
           --------------------
          ALTER SESSION
            CREATE CLUSTER
            CREATE DATABASE LINK
            CREATE SEQUENCE
            CREATE SESSION
            CREATE SYNONYM
            CREATE TABLE
            CREATE VIEW
     5. 查询当前角色被授予的角色
        Select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE
        输入 role= 'DBA'
        输出:
           GRANTED_ROLE
           ----------------------
          DELETE_CATALOG_ROLE
            EXECUTE_CATALOG_ROLE
            EXP_FULL_DATABASE
            IMP_FULL_DATABASE
            PLUSTRACE
            SELECT_CATALOG_ROLE
        说明: PLUSTRACE这个角色是用于执行SQL AUTO TRACE的, 通过执行 $ORACLE_HOME/sqlplus/admin/plustrce.sql可以生成这个角色.

oracle创建一个角色的完整sql语句

CREATE ROLE "TESTROLE"
    IDENTIFIED BY "hawkingwan";
GRANT ALTER ANY INDEX TO "TESTROLE" WITH ADMIN OPTION
GRANT SELECT ANY TABLE TO "TESTROLE" WITH ADMIN OPTION
GRANT "CONNECT" TO "TESTROLE";
GRANT "DBA" TO "TESTROLE";
BEGIN
     dbms_resource_manager_privs.grant_switch_consumer_group(
         grantee_name => 'TESTROLE',
         consumer_group => 'DEFAULT_CONSUMER_GROUP',
         grant_option => FALSE
    );
END;

转自:http://blog.csdn.net/kdnuggets/archive/2007/12/09/1925591.aspx

posted @ 2008-03-05 14:35 巴西木 阅读(267) | 评论 (0)编辑 收藏

ORACLE数据库用户与权限管理

ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。

2. 1 ORACLE数据库安全策略

建立系统级的安全保证
系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。

建立对象级的安全保证
对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。

建立用户级的安全保证
用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。

2.2 用户管理

ORACLE用户管理的内容主要包括用户的建立、修改和删除

用户的建立
SQL>CREATE USER jxzy

>IDENTIFIED BY jxzy_password

>DEFAULT TABLESPACE system

>QUATA 5M ON system; //供用户使用的最大空间限额

用户的修改
SQL>CREATE USER jxzy

>IDENTIFIED BY jxzy_pw

>QUATA 10M ON system;

删除用户及其所建对象
SQL>DROP USER jxzy CASCADE; //同时删除其建立的实体

2.3系统特权管理与控制

ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。

授予系统特权
SQL>GRANT CREATE USER,ALTER USER,DROP USER

>TO jxzy_new

>WITH ADMIN OPTION;

回收系统特权
SQL>REVOKE CREATE USER,ALTER USER,DROP USER

>FROM jxzy_new

//但没有级联回收功能

显示已被授予的系统特权(某用户的系统级特权)
SQL>SELECT*FROM sys.dba_sys_privs

2.4 对象特权管理与控制

ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。

授予对象特权
SQL>GRANT SELECT,INSERT(office_num,office_name),

>UPDATE(desc)ON office_organization

>TO new_adminidtrator

>WITH GRANT OPTION;

//级联授权

SQL>GRANT ALL ON office_organization

>TO new_administrator

回收对象特权
SQL>REVOKE UPDATE ON office_orgaization

>FROM new_administrator

//有级联回收功能

SQL>REVOKE ALL ON office_organization

>FROM new_administrator

显示已被授予的全部对象特权
SQL>SELECT*FROM sys.dba_tab_privs

2.5 角色的管理

ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化特权管理,可把它授予用户或其它角色。

ORACLE数据库系统预先定义了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、 IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等特权;RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出与装入数据库的特权。

通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。

授予用户角色
SQL>GRANT DBA TO new_administractor

>WITH GRANT OPTION;


==============================================================



Oracle 的用户根据所被授予的权限分为系统权限和对象权限。其中最高的权限是sysdba。 Sysdba具有控制Oracle一切行为的特权,诸如创建、启动、关闭、恢复数据库,使数据库归档/非归档,备份表空间等关键性的动作只能通过具有sysdba权限的用户来执行。这些任务即使是普通DBA角色也不行。Sysoper是一个与sysdba相似的权限,只不过比sysdba少了SYSOPER privileges WITH ADMIN OPTION,CREATE DATABASE,RECOVER DATABASE UNTIL这几个权限而已。这两者的认证方式是相同的办法,所以下面只介绍sysdba的认证管理。

  一般对sysdba的管理有两种方式: *** 作系统认证和密码文件认证。具体选择那一种认证方式取决于:你是想在Oracle运行的机器上维护数据库,还是在一台机器上管理分布于不同机器上的所有的Oracle数据库。若选择在本机维护数据库,则选择 *** 作系统认证可能是一个简单易行的办法;若有好多数据库,想进行集中管理,则可以选择password文件认证方式。
  下图比较直观的说明了这个选择权衡过程:
  
  使用 *** 作系统认证方式的配置过程:
  1. 在 *** 作系统中建立一个合法帐户。
  具体来说,在NT上,首先建立一个本地用户组,取名为ORA__DBA,其中SID为该数据库实例的SID,或者建立一个ORA_DBA地组,该组不对应于任何一个单独的Oracle实例。这样当一个NT上有好几个Oracle实例时,不用分别管理。然后再NT上建立一个用户,并且把它归入该组中。但是实际上这两步在Oracle8I安装过程中已经自动完成了,一般不用手动进行。
  第三步:在sqlnet.ora(位于$ORACLE_HOME/NETWORK/ADMIN目录中)中,把SQLNET.AUTHENTICATION _ SERVICES 设置为SQLNET.AUTHENTICATION_SERVICES= (NTS),意思为使用NT认证方式。
  第四步,在INIT.ORA中,把REMOTE_LOGIN_PASSWORD设置为NONE,意思是不用password认证方式。
  完成以上步骤后,就可以在登录到NT后,直接在SQL*Plus 和SERVER MANAGER中CONNECT INTERNAL (CONNECT / AS SYSDBA)来作为超级用户登录到Oracle中,执行一些只有超级用户才能进行的 *** 作。
  在Unix下,情况有些不同。毕竟这是两个完全不同的 *** 作系统。
  首先,在安装Oracle之前,建立一个DBA组,这一步不用说了,不然是装不上Oracle的。一般还建立一个名为Oracle的用户,并把它加入到DBA组中。
  第二步, 设置REMOTE_LOGIN_PASSWORD为NONE。在Oracle8.1以后,该参数默认为EXCLUSIVE。一定要记得改过来。
  第三步, 用该用户名登录Unix,运行SQL*Plus 或者SERVER MANAGER,输入以下命令:CONNECT INTERNAL (CONNECT / AS SYSDBA)来登录到Oracle中。

  使用password文件认证的具体步骤:
  Oracle提供orapwd实用程序来创建password 文件,运用orapwd建立该认证方式的具体步骤如下:
  1. 使用Orapwd实用程序来创建一个PASSWORD文件。语法:
   orapwd file=文件名 password=internal用户密码 entried=entries.
  详细解释:
   文件名要包含完整的全路径名,如果不指定,Oracle把它默认放置$ORACLE_HOME/dbs(Unix下)或者$ORACLE_HOME/DATABASE(NT下)下。
  用户密码是用户internal的密码。当然后来还可以再向里边加入别的超级用户。
  Entries表示最大允许有的超级用户数目。这个是一个可选的。前两者是必须指定的。一般会把它设置的比实际需要大一些,以免不够。

  2. 把INIT.ORA中REMOTE_LOGIN_PASSWORD设置为EXCLUSIVE 或SHARED.使用EXCLUSIVE表示只有当前INSTANCE使用这个password文件。而且允许有别的用户作为sysdba登录进系统里边,而若选择了SHARED,则表明不止一个实例使用这个密码文件,伴随着一个很强的约束:sysdba权限只能授予sys和internal这两个用户名。(其实internal不是一个实际用户,而只是sys作为sysdba登录时的一个别名。)
  同时还要记得把sqlnet.ora文件中SQLNET.AUTHENTICATION _SERVICES设置为NONE。一般在Unix下它是默认设置。在NT下,若选择典型安装时,会使用OS认证,而自定义时会使用密码文件认证方式。在安装过程中会提示输入INTERNAL密码。这样的话,就不用在手工创建密码文件和设定INTERNAL的密码了。

  3. 用SQL*Plus 或SERVER MANAGER运行下面命令登录进系统:CONNECT INTERNAL/密码。


  注意点:
  1.在Oracle8.1.6安装在WIN2000下创建数据库时,常常会发生凭证检索失败的错误。这是由于Oracle不能应用OS认证的结果。一般可以通过修改sqlnet.ora中SQLNET.AUTHENTICATION _SERVICES为NONE来解决。这时,Oracle将采用密码文件认证方式。
  2.由于Oracle有几个系统预建的用户,所以最好在安装完成以后马上改变这些用户的密码。系统默认得密码分别为:internal/oracle , sys/change_on_install, system/manager.

  3.当选择密码文件认证方式时,可以再向系统中加入其他超级用户。比如用以下语句把用户SCOTT加入超级用户之中:(由具有sysdba权限的人执行)
  SQL>GRANT SYSDBA TO SCOTT;这样SCOTT用户就具有了sysdba权限。注意,此时SCOTT用户可以以两种身份登录:SCOTT , SYS.当SCOTT在登录时没有输入AS SYSDBA时,SCOTT是作为普通用户登录的。而当登录时输入了AS SYSDBA时,此时SCOTT登录进去的用户实际上为sys。

  4. 当前系统中的具有sysdba权限的用户名可以从数据字典视图v$pwfile_user中查询得到:
SELECT * FROM V$PWFILE_USERS; 如上图所示。
  5. 系统中最大的具有sysdba权限的用户数由创建密码文件时的ENTRIES参数决定。当需要创建更多的具有sysdba权限的用户时,就需要删除原有的密码文件,重新创建一个。这需要关闭数据库,删除密码文件,重新创建一个新的密码文件,在entries中输入足够大的数目。再启动Oracle。这时,所有原来北授权的超级用户都不再存在,需要重新授权。所以在重新创建密码文件前,先要查询该视图,记下用户名,再在创建完密码文件后重新授权。
  6. Internal用户密码忘记的处理方法:
  有两种办法:
  1. ALTER USER SYS IDENTIFIED BY 新密码;//这同时也改变了Internal的密码,在Oracle8I中通过
  2. 重新创建一个新的密码文件,指定一个新的密码。

posted @ 2008-03-05 14:01 巴西木 阅读(8357) | 评论 (0)编辑 收藏

仅列出标题
共33页: First 22 23 24 25 26 27 28 29 30 Last