关于数据库安全及其防范方案的分析
随着网络的不断发展,数据的共享日益加强,数据的安全保密越来越重要。为了计算机数据库整体安全性的控制,需要做好很多细节性的工作,并根据具体应用环境的安全需要来分析安全薄弱环节,并制定统一的安全管理策略加以实施,以保证其最高的安全性。
1数据库安全环境的分析
随着时代的发展,我国的计算机信息安全标准也在不断提升。在当下的数据库系统安全控制模块中,我国数据库安全分为不同的等级。但是总体来说,我国的数据库安全性是比较低的,这归结于我国数据技术体系的落后。为了更好的健全计算机数据库体系,进行数据库安全体系的研究是必要的。我国现有的一系列数据安全理论是落后于发达国家的。这体现在很多的应用领域,比如电力领域、金融领域、保险领域等。很多软件都是因为其比较缺乏安全性而得不到较大范围的应用,归根结底是数据库安全性级别比较低。
为了满足现阶段数据库安全工作的需要,进行相关标准的深化研究是必要的。这需要对数据库安全进行首要考虑,且需要考虑到方方面面,才更有利于数据库保密性的控制,从而保证这些数据存储与调用的一致性。
在当前数据库安全控制过程中,首先需要对这些数据进行可用性的分析,从而有利于避免数据库遭到破坏,更有利于进行数据库的损坏控制及其修复。其次为了保证数据库的安全性、效益性,也离不开对数据库整体安全性方案的应用。最后必须对数据库进行的一切 *** 作进行跟踪记录,以实现对修改和访问数据库的用户进行追踪,从而方便追查并防止非法用户对数据库进行 *** 作。
2数据库安全策略的更新
为了满足现阶段数据库安全性方案的应用,进行身份的鉴别是必要的。所谓的身份鉴别就是进行真实身份及其验证身份的配比,这样可以避免欺诈及其假冒行为的发生。身份鉴别模式的应用,表现在用户使用计算机系统进行资源访问时。当然在一些特定情况下,也要进行身份鉴别,比如对某些稀缺资源的访问。
身份鉴别通常情况下可以采用以下三种方法:一是通过只有被鉴别人自己才知道的信息进行鉴别,如密码、私有密钥等;二是通过只有被鉴别人才拥有的信物进行鉴别,如IC卡、护照等;三是通过被鉴别人才具有的生理或者行为特征等来进行鉴别,如指纹、笔迹等。
在当前访问控制模块中,除了进行身份鉴别模式的应用外,还需要进行信息资源的访问及其控制,这样更有利于不同身份用户的权限分配。这就需要进行访问级别的控制,针对各个系统的内部数据进行 *** 作权限的控制,进行自主性及其非自主性访问的控制,满足数据库的安全需要。实现用户对数据库访问权限进行控制,让所有的用户只能访问自己有权限使用的数据。当某一个用户具有对某些数据进行访问的权限时,他还可以把对这些数据的 *** 作权限部分或者全部的转移给其他用户,这样其他的用户也获得了对这些数据的访问权。
为了更好的进行数据库的安全管理,审计功能的应用也必不可少。这需要就数据库的数据进行统一性的 *** 作。这样管理员更加方便对数据库应用情况进行控制,审计功能也有利于对数据库的 *** 作行为进行控制,更有利于控制用户对数据库的访问。攻击检测是通过升级信息来分析系统的内部和外部所有对数据库的攻击企图,把当时的攻击现场进行复原,对相关的攻击者进行处罚。通过这种方法,可以发现数据库系统的安全隐患,从而来改进以增加数据库系统的安全性。
在数据库数据处理过程中,可以进行一些合法查询模式的应用,当需要调取保密数据时,就需要应用推理分析模块。这是数据库安全性方案控制过程中的重难点,而通过这种简单的推理分析方法调取保密数据,是得不到有效解决的。但是我们可以使用以下几种方法来对这种推理进行控制:数据加密的基本思想就是改变符号的排列方式或按照某种规律进行替换,使得只有合法的用户才能理解得到的数据,其他非法的用户即使得到了数据也无法了解其内容。
通过对加密粒度的应用,更有利于进行数据库加密性的控制。其分为几种不同的应用类型等级。在当前应用模块中,需要进行数据保护级别的分析,进行适当的加密粒度的分析。更有利于满足数据库级别加密的需要。该加密技术的应用针对的是整体数据库,从而针对数据库内部的表格、资料等加密。采用这种加密粒度,加密的密钥数量较少,一个数据库只需要一个加密密钥,对于密钥的管理比较简单。但是,由于数据库中的数据能够被许多的用户和应用程序所共享,需要进行很多的数据处理,这将极大的降低服务器的运行效率,因此这种加密粒度只有在一些特定的情况下才使用。
表级加密也是比较常用的方法,这种方法应用于数据库内部的数据加密。针对具体的存储数据页面进行加密控制。这对于系统的运行效率的提升具备一定的帮助,不会影响系统的运行效率。这种方法需要应用到一些特殊工具进行处理,比如解释器、词法分析器等,进行核心模块的控制,进行数据库管理系统源代码的控制及其优化。但是其难以确保数据库管理系统的整体逻辑性,也存在缺陷。记录级加密;这种加密技术的加密粒度是表格中的每一条记录,对数据库中的每一条记录使用专门的函数来实现对数据的加密、解密。通过这种加密方法,加密的粒度更加小巧,具有更好的选择性和灵活性。字段级加密;这种加密技术的加密粒度是表格中的某一个或者几个字段。通过字段级的加密粒度只需要对表格中的敏感列的数据进行加密,而不需要对表格中的所有的数据进行加密。
选择加密算法也是比较常见的数据加密方法。它是数据加密的核心部分。对于数据库的整体安全性的控制具有直接性的影响。通过对加密算法的分析,得知其分为公共密钥加密及其对称加密。在数据加密模块中,需要进行密文及其明文的区分,从而进行明文及其密文的转换,也就是普遍意义上的密码。密码与密钥是两个不同的概念。后者仅是收发双方知道的信息。在数据加密技术中,对密钥进行管理主要包括以下几个方面,产生密钥。产生怎样的密钥主要取决于使用什么样的算法。若产生的密钥强度不一样就称这种算法实现的是非线性的密钥空间,若产生的密钥强度一样就称这种算法实现的是线性的密钥空间。分配密钥、传递密钥:分配密钥就是产生一个密钥并且将这个密钥分配给某个用户使用的过程。
密钥的传递分为不同的应用形式,集中式与分散式。所谓的集中式就是进行密钥整体式的传递;所谓的分散式就是对密钥的多个部分进行划分,以秘密的方法给用户进行传递。通过将整体方法与分散方法应用到存储模块中,更好的满足现阶段数据库整体安全性的需要。对于密钥的备份可以使用和对密钥进行分散存储一样的方式进行,以避免太多的人知道密钥;而销毁密钥需要有管理和仲裁机制,以防止用户对自己的 *** 作进行否认。
3结束语
随着计算机,特别是网络的不断发展,数据的共享日益加强,数据的安全保密越来越重要。本文详细阐述了数据库的安全防范,分别从数据分析、用户鉴别、访问权限控制、审计、数据加密等环节逐一剖析数据库安全。为了计算机数据库整体安全性的控制,需要做好很多细节性的工作,并根据具体应用环境的安全需要来分析安全薄弱环节,并制定统一的安全管理策略加以实施,以保证其最高的安全性。
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb to common_user@’%’
grant insert on testdb to common_user@’%’
grant update on testdb to common_user@’%’
grant delete on testdb to common_user@'%'
或者
grant select, insert, update, delete on testdb to common_user@’%’
二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 MySQL 数据表结构权限。
grant create on testdb to developer@’1921680%’;
grant alter on testdb to developer@’1921680%’;
grant drop on testdb to developer@’1921680%’;
grant *** 作 MySQL 外键权限。
grant references on testdb to developer@’1921680%’;
grant *** 作 MySQL 临时表权限。
grant create temporary tables on testdb to developer@’1921680%’;
grant *** 作 MySQL 索引权限。
grant index on testdb to developer@’1921680%’;
grant *** 作 MySQL 视图、查看视图源代码 权限。
grant create view on testdb to developer@’1921680%’;
grant show view on testdb to developer@’1921680%’;
grant *** 作 MySQL 存储过程、函数 权限。
grant create routine on testdb to developer@’1921680%’; — now, can show procedure status
grant alter routine on testdb to developer@’1921680%’; — now, you can drop a procedure
grant execute on testdb to developer@’1921680%’;
三、grant 普通 DBA 管理某个 MySQL 数据库的权限。
grant all privileges on testdb to dba@’localhost’
其中,关键字 “privileges” 可以省略。
四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。
grant all on to dba@’localhost’
五、MySQL grant 权限,分别可以作用在多个层次上。
1 grant 作用在整个 MySQL 服务器上:
grant select on to dba@localhost; — dba 可以查询 MySQL 中所有数据库中的表。
grant all on to dba@localhost; — dba 可以管理 MySQL 中的所有数据库
2 grant 作用在单个数据库上:
grant select on testdb to dba@localhost; — dba 可以查询 testdb 中的表。
3 grant 作用在单个数据表上:
grant select, insert, update, delete on testdborders to dba@localhost;
这里在给一个用户授权多张表时,可以多次执行以上语句。例如:
grant select(user_id,username) on smpusers to mo_user@’%’ identified by ‘123345′;
grant select on smpmo_sms to mo_user@’%’ identified by ‘123345′;
4 grant 作用在表中的列上:
grant select(id, se, rank) on testdbapache_log to dba@localhost;
5 grant 作用在存储过程、函数上:
grant execute on procedure testdbpr_add to ‘dba’@'localhost’
grant execute on function testdbfn_add to ‘dba’@'localhost’
六、查看 MySQL 用户权限
查看当前用户(自己)权限:
show grants;
查看其他 MySQL 用户权限:
show grants for zhangkh@localhost;
七、撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
grant all on to dba@localhost;
revoke all on from dba@localhost;
八、MySQL grant、revoke 用户权限注意事项
1 grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
2 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“
grant select on testdb to dba@localhost with grant option;
这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。
mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。
授权表的内容有如下用途:
user表
user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。
db表
db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。
host表
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。
tables_priv表
tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。
columns_priv表
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列。
注:
对于GRANT USAGE ON,查看手册有如下介绍和实例:
mysql> GRANT USAGE ON TO ‘zhangkh’@'localhost’;
一个账户有用户名zhangkh,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为’N'。假定你将在以后将具体权限授予该账户。
oracle可以通过设置表的权限来设定用户对表的访问权限。
通过dba权限用户或者表的拥有者用户来设定相关权限。
基本的权限主要有三个,select,update和delete
其实还有一个alter权限,不过这个权限不建议授予,这个还是掌握在dba手中比较好。不然将来会很麻烦。
授权语句大同小异,只是dba授权的话,需要加上表的所属用户。
举例:比如要把aaa用户下的a表,授予bbb用户。dba用户为ccc
那么用aaa用户的授权语句为
grant select on a to bbb;
使用ccc用户的授权语句为
grant select on aaaa to bbb;
其他的update,和delete只要把select 替换就好。
当然如果三个权限都想授予。那么可以考虑grant all on a to bbb;
1使用navicat
1)首先使用root用户新建连接
2)新建MySQL用户
3)点击权限,选择添加权限,出现MySQL中已存在的数据库列表,选择你要为该新建用户开放的数据库,此处选择“maibao”数据库,选择一些必要的权限信息(我这里进行了全部权限选择),确定
以上就是关于关于数据库安全及其防范方案的分析(数据库的安全策略)全部的内容,包括:关于数据库安全及其防范方案的分析(数据库的安全策略)、mysql grant 哪些权限、如何对Oracle10g数据库设置用户对表的访问权限。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)