本篇内容介绍了”如何确保数据库中的数据安全”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
数据库安全有两个方面:一是数据库物理安全,指的是运行数据库的服务器,传输数据的线路等设备的正常运行,不被外力破坏,不因网络拥塞而不可用,预防因元器件老化而造成损失;二是数据库逻辑安全,数据库中最重要的是数据,要保证数据不因黑客入侵而丢失或泄露,不因程序崩溃而损坏,数据存储方式合理有序,存取方便快捷。
对数据的安全保障包括几个方面,分别为数据独立性,数据安全性、数据完整性,并发控制,故障恢复等。
数据独立性包括物理独立性和逻辑独立性两个方面。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
数据安全性要求数据需要按照需求以一定结构合理存储,利用访问控制增加数据被窃取的可能性,利用加密存储增加对数据窃取的犯罪成本,从而减少风险。
数据完整性包括数据的正确性,有效性和一致性。正确性是指数据的输入值与数据表对应域的数值、类型相同,有效性是指数据库中的数值约束满足现实应用中对该数值段的理论范围,一致性是指不同用户对同一数据的使用方法和理解应该是一样的。
并发:当多个用户同时访问数据库的同一资源时,多个资源的读写顺序不同将导致不同的结果,因此需要并发控制。当一位用户正在连续操作该数据时,有另一位用户中途读出改数据,则会读到不正确的数据,被称为数据脏读。这时就需要对这种并发操作施行控制,排除和避免这种错误的发生,保证数据的正确性。
故障恢复:数据库因软件原因(如计算机病毒,网络不稳定,程序错误,误操作等)或物理原因(如突然断电,自然灾害,硬件老化等)导致数据的损坏,应存在一种恢复机制,使损失降到最小。
01 MySQL安全配置
<强> 1。修改根用户口令,删除空口令强>
在MySQL控制台中执行如下代码,将newpass换成实际的口令即可。
mysql>, SET PASSWORD FOR&而root&, @&, lo calhost&,=密码(和,newpass&,),,, Query 好吧,0,rows 影响,1,警告(0.01,sec)
<强> 2。删除默认数据库和数据库用户强>
MySQL默认安装后带有测试等数据库用于测试,可能带来不安全因素,因此将其移除,如下:
mysql>, DROP DATABASE 测试;,,Query 好吧,0,rows 影响(0.00,sec)
有些MySQL数据库的匿名用户的口令为空。因而,任何人都可以连接到这些数据库。可以用下面的命令进行检查:
mysql>, select *, frommysql.user where 用户=啊?/pre><强> 3。改变默认MySQL管理员帐号强>
首先创建一个与根用户权限一样的用户。如下所示:
mysql>, GRANT ALL PRIVILEGES 提醒*。*,用& # 39;new_admin& # 39; @ # 39; 127.0.0.1 # 39;, IDENTIFIED BY & # 39;密码# 39;;,,Query 好吧,0,rows 影响,1,警告(0.02,sec)删除默认的根用户,如下。
mysql>, drop user root@& # 39; 127.0.0.1 # 39;;,, mysql>, drop user root@& # 39; lo calhost& # 39;;,, mysql>, drop user root@& # 39;:: 1 & # 39;;,, Query 好吧,0,rows 影响(0.04,sec)<强> 4。使用独立用户运行MySQL 强>
在一个安全系统中使用一个权限较低的独立系统用户运行MySQL,即使在MySQL存在安全问题时,也能有效地阻止黑客进一步入侵。
<强> 5。禁止远程连接数据库强>或
在my . cnf中所做my.ini的(mysqld)部分配置如下参数,可以关闭在TCP/IP端口上的监听进而达到保证安全的效果。
skip-networking也可以仅监听本机、方法是的在my . cnf中所做(mysqld)部分增加下面一行。
bind-address=127.0.0.1若不得不启用远程连接数据库,则可以对目标的主机给予有限的访问许可。
mysql> GRANT 选择、INSERT 提醒mydb。*,用& # 39;用户名# 39;@ # 39;host_ip& # 39;;<强> 6。限制连接用户的数量强>
限制最大连接数,可以增加黑客暴力攻击数据库所需时间,增加攻击被发现的可能性,从而增加安全性。
可以在my.ini查或my . cnf中所做找max_connections=100,修改为max_connections=1000服务里重启MySQL。或用如下命令修改最大连接数。
如何确保数据库中的数据安全