随着网络的普及,基于网络的应用也越来越多。网络数据库就是其中之一。通过一台或几
台服务器可以为很多客户提供服务,这种方式给人们带来了很多方便,但也给不法分子造
成了可乘之机。由于数据都是通过网络传输的,这就可以在传输的过程中被截获,或者通
过非常手段进入数据库。由于以上原因,数据库安全就显得十分重要。因此,本文就以上
问题讨论了
MySQL
数据库在网络安全方面的一些功能。
帐户安全
帐户是
MySQL
最简单的安全措施。每一帐户都由用户名、密码以及位置(一般由服务器
名、
IP
或通配符)组成。如用户
john
从
server1
进行登录可能和
john
从
server2
登录
的权限不同。
MySQL
的用户结构是用户名
/
密码
/
位置。这其中并不包括数据库名。下面的两条命令为
database1
和
database2
设置了
SELECT
用户权限。
GRANT SELECT ON database1.* to ‘abc’@‘server1’ IDENTIFIED BY ‘password1’;
GRANT SELECT ON database2.* to ‘abc’@‘server1’ IDENTIFIED BY ‘password2’;
第一条命令设置了用户
abc
在连接数据库
database1
时使用
password1
。第二条命令设
置了用户
abc
在连接数据库
database2
时使用
password2
。因此,用户
abc
在连接数
据库
database1
和
database2
的密码是不一样的。
上面的设置是非常有用的。如果你只想让用户对一个数据库进行有限的访问,而对其它数
据库不能访问,这样可以对同一个用户设置不同的密码。如果不这样做,当用户发现这个
用户名可以访问其它数据库时,那将会造成麻烦。
MySQL
使用了很多授权表来跟踪用户和这些用户的不同权限。这些表就是在
mysql
数据
库中的
MyISAM
表。将这些安全信息保存在
MySQL
中是非常有意义的。因此,我们可以
使用标准的
SQL
来设置不同的权限。
一般在
MySQL
数据库中可以使用
3
种不同类型的安全检查:
·
登录验证
也就是最常用的用户名和密码验证。一但你输入了正确的用户名和密码,这个验证就可通
过。
·
授权
在登录成功后,就要求对这个用户设置它的具体权限。如是否可以删除数据库中的表等。
·
访问控制
这个安全类型更具体。它涉及到这个用户可以对数据表进行什么样的操作,如是否可以编
辑数据库,是否可以查询数据等等。
访问控制由一些特权组成,这些特权涉及到所何使用和操作
MySQL
中的数据。它们都是
布尔型,即要么允许,要么不允许。下面是这些特权的列表:
·SELECT
SELECT
是设定用户是否可以使用
SELECT
来查询数据。如果用户没有这个特权,那么就
只能执行一些简单的
SELECT
命令,如计算表达式(
SELECT 1+2
),或是日期转换
(
SELECT Unix_TIMESTAMP
(
NOW
( )))等。
·INSERT
·UPDATE
·INDEX
INDEX
决定用户是否可以对表的索引进行设置。如果用户没有这个权限,那么将无法设置
表中的索引。
·ALTER
·CREATE
评论