2009-07-02 16:42:55 来源:IT专家网
对于安全性要求比较高的企业,如果权限设置不当,很有可能会影响到数据库的安全。如数据库管理员只负责数据库的管理,不应该有数据查询或者更改的权利,但是确给了它这个权利;如导入数据的用户,不能够通过其他形式来更改数据库中的数据或者进行系统的管理工作。
虽然这些权限都可以通过权限分配来完成。但是如此做的话,工作量会比较大。为此在DB2数据库中,涉及了特权角色,就是用来解决权限管理上的要求。特权角色其实就是数据库中预先定义的权限组合。数据库管理员不需要再数据库部署中再进行设置。为此就可以轻易的实现为不同的用户配置不同的特权。 高级扫描提高数据库查询性能
特权一:系统控制权限。
不少企业的数据库存在一个很大的安全风险,即数据库管理员具有访问和操纵数据库中数据的最高权力。有些业务员在离职的时候,会让数据库管理员将系统中客户信息、产品信息等导出给业务员。数据库管理员可能是碍于情面或者其他原因,也不好拒绝。就会将数据库中的信息导出来给业务员带走。另外有时候数据库管理员出于私心,也会将这些机密信息给朋友甚至卖钱以谋取私利。特别是当企业数据库规模比较庞大,有多个管理员同时管理一个数据库时,这种情况更加难以避免。而且时候也很难追查责任。为此一些在数据库中包含敏感数据的企业,往往希望能够控制数据库管理员的权限,让他们只能否负责数据库的日常维护作业,但是不能够访问数据库中的业务数据。
为了解决用户的这个安全隐患,在DB2数据库中设计了一个系统控制权限的特权机制。这个特权具有数据库管理程序实例以及数据库执行维护和使用程序操作的能力。简而言之,在数据库维护方面,其具有最高级别的系统控制权限。但是这个特权下的用户不允许直接存取此数据库中的数据。也就是说,不能够直接访问数据库中的业务数据。这个系统控制权限是IBM为了管理包含敏感数据库管理程序实例的企业用户而设计的。
一般情况下,数据库管理员可以先建立一个组,然后将这个系统控制权限赋予给这个组。最好将数据库管理员加入到这个组中。如此的话,就可以限制这些数据库管理员直接访问数据库中的敏感数据。显然这比数据库管理员一个个表去设置权限要简单的多。
这个特权跟数据库管理特权具有很明显的不同。数据库管理特权只适用于特定的数据库。不过两者最大的区别在于,数据库管理特权可以存取数据库中任何表中的数据,包括一些敏感的数据。由于数据库管理特权具有赋予权限的能力,为此即是将他们的权限限制住也无济于事。因为其自己就是权限的制定者。故如果企业的数据库中包含着一些有价值的敏感信息,如产品的配方等等,最好能够为数据库管理员采用“系统控制权限特权”,防止他们利用这些敏感的数据来谋取私利。 JDBC数据库驱动程序种类及选择
特权二:LOAD特权。
在数据库部署中,还有一类比较特殊的用户,即数据导入用户。在数据库初始化的过程中,需要将很多基础数据导入到系统中。如产品信息、合作伙伴的信息等等。一般情况下,这些信息所涉及的表往往具有权限上的控制,即特定的人只能够访问特定表中的信息。这对于数据库中数据的安全具有很大的作用。但是在数据库初始化导入过程的时候,就会出现问题。如果往不同的表中导入数据,需要采用不同的帐户来完成,显然这个帐户的切换会很麻烦。虽然数据库管理员特权可以访问所有的数据表,但是如果采用这个权限的话,就会出现上面提到的安全风险。为此,企业就希望有一个权限,其在数据导入的时候具有更新全部表的能力。但是其能力只限于此。这个特权下的用户,虽然对全部的表具有数据导入的权限,但是其不能够直接访问数据表中的数据,而且对数据库没有任何的管理工具。也就是说,这个特权的用户,只负责数据的导入工作。其他创建表等工作都是无法进行的。
如现在Elanor是企业的数据录入人员,其负责数据库数据的导入工作。为此数据库管理员可以将LOAD特权赋予给这个用户所在的组。这个用户具有了这个LOAD特权并且对标具有Insert权限,则这个用户就可以利用LOAD命令或者采用自动装入适用程序来导入数据。这里需要注意一个问题,即LOAD操作可以分为两类,分别为插入数据的装入操作与装入替换的装入操作。对于前者来说,这个用户只需要具有LOAD特权与INSERT权限即可。但是对于后者来说,除了需要具有以上两种权限外,还需要一个DELETE权限。这主要是因为其需要把原先的数据删除掉然后再导入数据。而默认情况下LOAD特权是没有数据删除的权利。故进行装入替换操作时,数据库管理员要记得给这个用户赋予表Delete权限。
为此,在数据导入数据库的过程中,可以先建立一个数据导入组,然后将LOAD权限赋予给这个组,并将相关用户也加入到这个组中。让这些用户先暂时具有往表中导入数据的权限。等到数据导入完成之后,再将这个数据导入组禁用掉。如此的话,在数据导入的过程中,就可以避免频繁的更换帐户以获得向表中导入数据的权限。当将这个组禁用掉之后,或者将用户从这个数据导入组中移出,用户就再也没有这个LOAD特权。所以也不会影响到用户原有的权限设计。这个LOAD特权机制是IBM特别为数据导入所设计的。为此笔者建议数据库管理员要灵活适用这个特权,以提高数据导入过程中的便利性与安全性。
DB2数据库的安全是取得国际性的认证的。从这些特权也可以看出IBM在数据库安全性上所作的努力。所以我们数据库管理员也不能够浪费他们的一番苦心,要使用好这两个特权。笔者最后再强调一点,在一些规模比较大的企业,其数据库往往比较复杂。为此他们数据库管理员不是一个,而是一个团队。在这种情况下,为了提高业务数据的安全,最好将数据库管理员的权限设置为“系统维护权限”(这个特权跟系统控制权限类似,只是其只针对特定的数据库)或者“系统控制权限”。在这两个特权下的管理员,都无法直接访问数据库中的数据。对于“数据库管理员权限”这个特权,最好能够慎用。因为其不但可以管理数据库,而且还可以访问数据库中所有的表,即能够从数据库中获取一些敏感的信息。对于保密要求级别比较高的企业,如一些具有专业知识产权的化工企业、食品企业等等,更加需要注意数据库管理员对敏感数据的安全威胁。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。