Oracle数据库中文件加密详解

Oracle数据库中文件加密详解,第1张

在Oracle数据库系统中 用户如果要以特权用户身份登录Oracle数据库可以有两种身份验证的方法 即使用与 *** 作系统集成的身份验证或使用Oracle数据库的密码文件进行身份验证 因此 管理好密码文件 对于控制授权用户从远端或本机登录Oracle数据库系统 执行数据库管理工作 具有重要的意义

Oracle数据库的密码文件存放有超级用户INTERNAL/SYS的口令及其他特权用户的用户名/口令 它一般存放在ORACLE_HOME\DATABASE目录下

创建密码文件

在使用Oracle Instance Manager创建一数据库实例的时侯 在ORACLE_HOME\DATABASE目录下还自动创建了一个与之对应的密码文件 文件名为PWDSID ORA 其中SID代表相应的Oracle数据库系统标识符 此密码文件是进行初始数据库管理工作的基矗在此之后 管理员也可以根据需要 使用工具ORAPWD EXE手工创建密码文件 命令格式如下

C:\ >ORAPWDFILE=<FILENAME >PASSWORD =<PASSWORD >ENTRIES=<MAX_USERS >

各命令参数的含义为

FILENAME 密码文件名

PASSWORD 设置INTERNAL/SYS帐号的口令

MAX_USERS 密码文件中可以存放的最大用户数 对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数 由于在以后的维护中 若用户数超出了此限制 则需要重建密码文件 所以此参数可以根据需要设置得大一些

有了密码文件之后 需要设置初始化参数REMOTE_LOGIN_PASSWORDFILE来控制密码文件的使用状态

设置初始化参数

在Oracle数据库实例的初始化参数文件中 此参数控制着密码文件的使用及其状态 它可以有以下几个选项

NONE 指示Oracle系统不使用密码文件 特权用户的登录通过 *** 作系统进行身份验证

EXCLUSIVE 指示只有一个数据库实例可以使用此密码文件 只有在此设置下的密码文件可以包含有除INTERNAL/SYS以外的用户信息 即允许将系统权限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户

SHARED 指示可有多个数据库实例可以使用此密码文件 在此设置下只有INTERNAL/SYS帐号能被密码文件识别 即使文件中存有其他用户的信息 也不允许他们以SYSOPER/SYSDBA的权限登录 此设置为缺省值

在REMOTE_LOGIN_PASSWORDFILE参数设置为EXCLUSIVE SHARED情况下 Oracle系统搜索密码文件的次序为 在系统注册库中查找ORA_SID_PWFILE参数值(它为密码文件的全路径名)若未找到 则查找ORA_PWFILE参数值若仍未找到 则使用缺省值ORACLE_HOME\DATABASE\PWDSID ORA其中的SID代表相应的Oracle数据库系统标识符

向密码文件中增加 删除用户

当初始化参数REMOTE_LOGIN_PASSWORDFILE设置为EXCLUSIVE时 系统允许除INTERNAL/SYS以外的其他用户以管理员身份从远端或本机登录到Oracle数据库系统 执行数据库管理工作这些用户名必须存在于密码文件中 系统才能识别他们 由于不管是在创建数据库实例时自动创建的密码文件 还是使用工具ORAPWD EXE手工创建的密码文件 都只包含INTERNAL/SYS用户的信息为此 在实际 *** 作中 可能需要向密码文件添加或删除其他用户帐号

由于仅被授予SYSOPER/SYSDBA系统权限的用户才存在于密码文件中 所以当向某一用户授予或收回SYSOPER/SYSDBA系统权限时 他们的帐号也将相应地被加入到密码文件或从密码文件中删除 由此 向密码文件中增加或删除某一用户 实际上也就是对某一用户授予或收回SYSOPER/SYSDBA系统权限

要进行此项授权 *** 作 需使用SYSDBA权限(或INTERNAL帐号)连入数据库 且初始化参数REMOTE_LOGIN_PASSWORDFILE的设置必须为EXCLUSIVE 具体 *** 作步骤如下

创建相应的密码文件

设置初始化参数REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

使用SYSDBA权限登录 CONNECTSYS/internal_user_passswordASSYSDBA

启动数据库实例并打开数据库

创建相应用户帐号 对其授权(包括SYSOPER和SYSDBA) 授予权限 GRANTSYSDBATOuser_name

收回权限 REVOKESYSDBAFROMuser_name 现在这些用户可以以管理员身份登录数据库系统了

使用密码文件登录

有了密码文件后 用户就可以使用密码文件以SYSOPER/SYSDBA权限登录Oracle数据库实例了 注意初始化参数REMOTE_LOGIN_PASSWORDFILE应设置为EXCLUSIVE或SHARED 任何用户以SYSOPER/SYSDBA的权限登录后 将位于SYS用户的Schema之下 以下为两个登录的例子

以管理员身份登录

假设用户scott已被授予SYSDBA权限 则他可以使用以下命令登录

CONNECTscott/tigerASSYSDBA

以INTERNAL身份登录

CONNECTINTERNAL/INTERNAL_PASSWORD

保护密码文件

查看密码文件中的成员

可以通过查询视图V$PWFILE_USERS来获取拥有SYSOPER/SYSDBA系统权限的用户的信息 表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用户是否拥有相应的权限 这些用户也就是相应地存在于密码文件中的成员

修改密码文件的状态

密码文件的状态信息存放于此文件中 当它被创建时 它的缺省状态为SHARED 可以通过改变初始化参数REMOTE_LOGIN_PASSWORDFILE的设置改变密码文件的状态 当启动数据库事例时 Oracle系统从初始化参数文件中读取REMOTE_LOGIN_PASSWORDFILE参数的设置当加载数据库时 系统将此参数与口令文件的状态进行比较 如果不同 则更新密码文件的状态 若计划允许从多台客户机上启动数据库实例 由于各客户机上必须有初始化参数文件 所以应确保各客户机上的初始化参数文件的一致性 以避免意外地改变了密码文件的状态 造成数据库登陆的失败

修改密码文件的存储位置

密码文件的存放位置可以根据需要进行移动 但作此修改后 应相应修改系统注册库有关指向密码文件存放位置的参数或环境变量的设置

删除密码文件

lishixinzhi/Article/program/Oracle/201311/16762

典型的总有刁民想害朕的心态[灵光一闪]

泄密到不存在,一般国内银行用Oracle的同时都会购买Oracle的维护服务,除非甲骨文不想做中国的生意了。当然因为中美关系的问题,一些行已经开始从周边系统逐渐开始改造使用国产数据库,比如华为的高斯200,同时国内的国有软件企业也在部署研发国产的数据库,公司名就不说了,反正确实有这个安排。

真的是个好问题,国家核心系统从什么开始决心抛弃windows。银行系统数据太过庞大复杂,上了贼船,下船太难太难了。

我是金融行业的码农,也算是有一定的发言权吧。

在数据库方面,金融领域用到的有Oracle和SQLServer等商业软件,也有Mysql、Redis等开源软件。这些软件有个令人沮丧的共同点, 很少有国产自主研发数据库

随着互联网的飞速发展,信息化浪潮席卷各个行业。效率的大幅提升,彻底颠覆了既有的工作模式。率先拥抱变革的企业收获了巨大收益,让后来者羡慕嫉妒恨。

信息技术不管发展如何,都绕不开数据存储,数据存储以关系型数据库最符合人的思维方式。关系型数据库中的翘楚无疑是Oracle数据库。

再回到题主的泄密问题,即Oracle数据库安全么?我的答案是 即安全又不安全 。之所以安全因为它是最好关系型数据库,常见的指标如易用性、稳定性、可用性、可恢复性都有完整的解决方案。之所以不安全是因为它是国外的闭源软件,是否有安全隐患,国人不得而知。

技术上不可控,我们怎么才能避免呢?答案是从管理上从严控制。

不怕。

物理上是对外隔离的, 架构上也有大量技术手段确保数据的安全。

但是自主可控的趋势不可阻挡。

内网,物理隔离。外网用啥都没用,想搞你不过是时间问题。

国内银行系统用的数据库很多, 核心系统一般都用老牌的商业数据库DB2、Oracle 。其他系统也有用Mysql、MongoDB等其他数据库。至于数据泄露吗?银行当然也怕。但是,就综合考虑来看,目前Oracle等商业数据库依然是最佳选择,将来可能会一步一步提高安全等级。

1、稳定是首要选项

我们都知道,银行是金融系统的重要机构。它们的系统不能够随便出问题,一出问题影响整个 社会 。所以, 对银行来说,稳定是摆在首要位置的 。任何创新都必须以此为前提。而DB2、Oracle这些商业数据库软件,首先能够满足银行的稳定性要求。

而在中国,银行是比较早有信息化的单位。但刚开始,没有任何经验的时候,只能是跟欧美国家学习模仿。外企银行基本都是采用oracle、DB2来做核心系统。中国自然是采用国外相同的方案。大部分银行也就采用了当时比较流行的一整套IBM大型机、小型机硬件,配套DB2、Oracle数据库来做。

2、安全实现手段

①、厂家信誉

一直用DB2、Oracle作为核心数据库。对银行来说,已经是最佳选择。因为,在过去,国产根本就没有什么拿得出手的数据库可以使用。银行自然也只能用业界最好的数据库,而且Oracle、DB2这类大品牌的数据库,在全球范围应用都很广。厂家自然也要注意保障安全,否则出了问题,全世界都受影响。

②、技术控制

除了厂家的信誉保障外,银行在技术上做了很多安全措施。首先, 内外网是物理隔离的 。这样,实时连接数据库的攻击是很难实现的了。其次,在防止数据泄露这一块,银行当然也是有很多的技术手段控制的。至少,外网需要的数据是从内网的网闸摆渡过去的。能摆渡什么数据出去,也是银行严格控制的。最后, 数据库里的敏感数据,也是加密存储的 。同时,网络上还 部署了一系列网络安全设备来 保障系统的安全。

3、银行安全需升级

银行现在虽然有很多的技术手段来保障信息安全,但是,DB2、Oracle始终是国外闭源商业数据库软件。如果软件存在漏洞或者后门,对银行来说也是一个大风险。加上国际形势风云变化,所以,银行也还是会有担心泄密问题,这就意味着银行的安全体系还需要升级。

那该如何升级安全呢?除了系统过等级保护外,也一直在倡导用安全可靠的软件。这就意味着需要逐步从Oracle、DB2等商业软件走向开源、或者国产等数据库软件。不过,银行的稳定性还是不能忽略的,所以, 银行也就只能逐步 探索 ,逐步提升安全。同时,国产数据库发展也还有很长一段路要走 。

总结

总之,早些年银行从稳定和安全出发,Oracle、DB2等商业数据库是最佳选择。这些年,随着国际形势的变化和技术的发展,银行也在逐步提升安全等级。将来也会逐步替换Oracle、DB2等商业数据库软件。

这是个系统的问题。

有些朋友说物理隔离,目前看应该做不到100%隔离。银行数据中心就是提供服务的,隔离了怎么提供服务?各个分行,网点,ATM都是要联网的,都是要访问数据库的,只是权限不同。

归结起来就是数据安全和数据库系统,计算机系统,网络系统,以及工作人员都是相关的,必须全方位防护。

数据库系统,国产化当然是必须的,但是国产数据库系统就没有漏洞吗?不故意窃取数据,难保不因失误而失窃。这个要加强测试。

计算机系统,包括软件和硬件,同样道理。

网络方面,银行应该是租用运营商的线路(虚拟专网,VPN)实现网点互联。出点和入点之间加密传输。如果加密算法没有被破解,秘钥没有暴露,一般没问题。但毕竟还是有”如果”的。

人的问题更大一些,买通一个人不太难吧?这个要通过层层审核,相互制衡,以及思想政治工作来防范。

所以说信息系统的安全防护是全方位的。

要使用SWIFT ,国际资金清算系统,就必须与国际接轨,所以必须用Oracl。

林郑太太被制裁,xyk不能用,工资都发现金,使用也是现金,那么多的国行,没有一家敢接盘。

有别的选择吗。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10648477.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存