数据字典是Oracle存放有关数据库信息的地方,其用途是进行数据描述。比如。一个表的创建者信息、创建时间信息、所属表空间信息、用户访问权限信息等。当用户在对数据库中的数据进行操作遇到困难时,就可以通过访问数据字典来查看详细的信息。Oracle数字字典是Oracle数据库系统最重要的组成部分,它提供了诸如数据库结构、数据库对象空间分配和数据库用户等有关数据库的信息。Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。
1、做好Oracle数据字典安全性管理的重要性
数据字典是存储在数据库中的所有对象信息的知识库,它保存着数据库的系统信息、例程运行信息等关键的信息。Oracle中的数据字典有静态和动态之分。静态数据字典在用户访问数据字典时不会发生改变;而动态数据字典依赖数据库运行的性能,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。而Oracle RDBMS会通过查询数据字典表或者数据字典视图来获取有关用户、对象的存储信息和安全信息以及其他相关信息,以确认权限的正确性。所以,这些表中数据的安全性就不容忽视。
数据字典就好像是一个大杂烩,其包含了当前数据库运行的所有信息。但是,若这些信息被非法用户获取的话,就可能给数据库带来不利的影响。所以,为了加强这些数据字典视图的权限控制,Oracle数据库系统在安全管理方面提供了一整套解决方案。
Oracle数据库系统的数据字典提供了数据库管理所需要的相关数据,为改善数据库性能提供了依据。数据库管理员在利用数据字典所带来的好处的同时,也需要注意做好数据字典相关表的保护工作。要防止因为权限设置不当而导致信息泄露,从而使非法人士有机可乘,为他们破获数据库的正常运行提供方便。
2、Oracle数据字典安全性管理的理论根源
数据字典不仅仅是Oracle数据库的核心部分,还是从最终用户到应用程序设计人员和数据库管理员所有用户的一个重要工具。使用sQL语句可以访问数据字典。因为数据字典是只读的,只能对它的表或视图执行查询(SELECT语句),而在Oracle数据库字典中,许多视图都有三个不同的实例,它们的前缀分别为“USER_”、“ALL_”及“DBA_”。“USER_”为前缀的数据库字典视图通常记录执行查询的帐户所拥有的对象的信息;”ALL_”为前缀的数据库字典视图通常记录包括执行查询的帐户所拥有的对象的信息及授权至PUBLIC的帐户用户所拥有的对象的信息;“DBA_”为前缀的数据库字典视图则包含所有数据库对象的信息,而不管其所有者。而在默认状况下,数据字典表和V$视图的所有者是SYS用户,只有SYS用户和拥有DBA系统权限的用户可以看到所有的视图.没有DBA权限的用户可以看到USER_和ALL_视图,但不能看到DBA_视图。
3、做好Oracle数据字典安全性管理的三点建议
在数据字典中,保存着数据库的系统信息、例程运行信息等关键的信息。例如,例程运行时的性能和统计信息;存储空间的分配信息,包括为某个对象分配了多少存储空间,以及实际使用了多少等信息;各种方案对象的定义信息,如存储过程、触发器等等。特别是Oracle数据库系统会通过查询数据字典表或者数据字典视图来获取有关用户、对象的存储信息。以及其他相关信息。以确认权限的正确性。所以,这些表中数据的安全性就不容忽视。为了提高这个数据字典的安全性,我有几个建议:
(1)数据字典一般都存在SYSTEM表空间中。我们在创建对象的时候,最好不要把我们建立的对象如表或者视图等存放这个表空间中。也就是说,在SYSTEM这个表空问中,我们不要在这里进行任何的修改动作,不要添加或者删除对象。以防止一不小心对其进行了不可恢复的误操作。
(2)数据库管理员通常需要从数据字典表中获取相关的系统运行信息,如从数锯字典的动态性能视图中,监视Oracle例程的运行状态。当我们查询数据字典中的内容的时候,最好是通过视图查询,而不要直接对数据字典的表查询,以减少对数据字典表的不利影响。
(3)加强数据字典权限控制。数据字典包含了当前数据库运行的所有信息,若这些信息被非法用户获取的话,就可能给数据库带来不利的影响。所以,应加强这些数据字典视图的权限控制,对于用户视图,主要包含了某个特定用户的解决方案的对象信息。当前登录用户的话,只能够看到自己账户相关的系统信息,数据管理员角色除外。对于扩展用户视图,数据库管理员会给某个用户授权,让其可以查看其他用户的对象信息,以利于管理好数据库系统。为此,那个被授权的用户,就需要通过扩展用户视图来查看其被授权的其他用户的系统运行信息,即使某个用户被授权了,其利用用户视图的话,仍然不能够查看到其他用户的方案对象信息。对于数据库管理员视图。包含了当前数据库系统中的所有对象信息,一般只允许数据库管理员角色的用户才可以访问数据库管理员视图。
另外,在有必要的情况下。也可以通过赋予某个账户一个特殊的权限,让其可以访问数据库管理员视图。如在Oracle数据库系统中,有一个Select Any Dictionary的权限。若某个用户被赋予这个权限的话,则其就可以访问数据库管理员视图,但笔者还是不建议数据库管理员这么操作。数据库管理员须做好相关的权限控制。在一般情况下,可以采用其默认的权限控制原则。在没有特别需要的情况下,不要去改变数据库默认的数据字典权限控制规则。Oracle数据库对于数据字典的默认访问规则是对数据字典的一个比较好的保护。
4、结论
不在数据字典的专用表空问中创建或者删除我们的对象,也是保护数据字典安全性的一个重要举措。Oracle数据库对于数据字典的默认访问规则,是对数据字典的一个比较好的保护。数据字典表以及相关的视图,数据库管理员最好能够学会通过Select语句查询数据字典中的相关信息。我喜欢把一些常用的Select语句保存起来,以在方便的时候可以直接通过Select语句来查询。这么做的话,效率要高得多。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:Oracle数据字典安全性管理
本文网址:http://www.toberp.com/html/consultation/1083954652.html