`

使用MySQL数据库值得注意的23个事项

阅读更多
使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项: 1. 如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就需要使用SSH隧道来加密该连接的通信。 2. 用setpassword语句来修改用户的密码,三个步骤,先“mysql-uroot”登陆数据库系统,然后“mysql>updatemysql.usersetpassword=password(newpwd)”,最后执行“flushprivileges”就可以了。 3. 需要提防的攻击有,防偷听. 篡改. 回放. 拒绝服务等,不涉及可用性和容错方面。对所有的连接. 查询. 其他操作使用基于ACL即访问控制列表的安全措施来完成。也有一些对SSL连接的支持。 4. 除了root用户外的其他任何用户不允许访问mysql主数据库中的user表; 加密后存放在user表中的加密后的用户密码一旦泄露,其他人可以随意用该用户名/密码相应的数据库; 5. 用grant和revoke语句来进行用户访问控制的工作; 6. 不使用明文密码,而是使用md5()和sha1()等单向的哈系函数来设置密码; 7. 不选用字典中的字来做密码; 8. 采用防火墙来去掉50%的外部危险,让数据库系统躲在防火墙后面工作,或放置在DMZ区域中; 9. 从因特网上用nmap来扫描3306端口,也可用telnetserver_host3306的方法测试,不能允许从非信任网络中访问数据库服务器的3306号TCP端口,因此需要在防火墙或路由器上做设定; 10. 为了防止被恶意传入非法参数,例如whereID=234,别人却输入whereID=234OR1=1导致全部显示,所以在web的表单中使用或来用字符串,在动态URL中加入%22代表双引号. %23代表井号. %27代表单引号;传递未检查过的值给mysql数据库是非常危险的; 11. 在传递数据给mysql时检查一下大小; 12. 应用程序需要连接到数据库应该使用一般的用户帐号,只开放少数必要的权限给该用户; 13. 在各编程接口(CC++PHPPerlJavaJDBC等)中使用特定‘逃脱字符’函数; 在因特网上使用mysql数据库时一定少用传输明文的数据,而用SSL和SSH的加密方式数据来传输; 14. 学会使用tcpdump和strings工具来查看传输数据的安全性,例如tcpdump-l-ieth0-w-srcordstport3306|strings。以普通用户来启动mysql数据库服务; 15. 不使用到表的联结符号,选用的参数--skip-symbolic-links; 16. 确信在mysql目录中只有启动数据库服务的用户才可以对文件有读和写的权限; 17. 不许将process或super权限付给非管理用户,该mysqladminprocesslist可以列举出当前执行的查询文本;super权限可用于切断客户端连接. 改变服务器运行参数状态. 控制拷贝复制数据库的服务器; 18. file权限不付给管理员以外的用户,防止出现loaddata/etc/passwd到表中再用select显示出来的问题; 19. 如果不相信DNS服务公司的服务,可以在主机名称允许表中只设置IP数字地址; 20. 使用max_user_connections变量来使mysqld服务进程,对一个指定帐户限定连接数; 21. grant语句也支持资源控制选项; 22. 启动mysqld服务进程的安全选项开关,--local-infile=0或1若是0则客户端程序就无法使用localloaddata了,赋权的一个例子grantinsert(user)onmysql.usertouser_name@host_name;若使用--skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用mysqladminflush-privileges或mysqladminreload来开启访问控制;默认情况是showdatabases语句对所有用户开放,可以用--skip-show-databases来关闭掉。 23. 碰到Error1045(28000)AccessDeniedforuserroot@localhost(Usingpassword:NO)错误时,你需要重新设置密码,具体方法是:先用--skip-grant-tables参数启动mysqld,然后执行mysql-urootmysql,mysql>updateusersetpassword=password(newpassword)whereuser=root;mysql>Flushprivileges;,最后重新启动mysql就可以了。 原文链接:http://yaho1233.blog.chinabyte.com/2010/08/02/156/
0
0
分享到:
评论

相关推荐

    mysql数据库设计(1).pdf

    mysql数据库设计 数据库设计 约束 约束 * 概念: 对表中的数据进⾏限定,保证数据的正确性、有效性和完整性。 * 分类: 1. 主键约束:primary key 1. 注意: 1. 含义:⾮空且唯⼀ 2. ⼀张表只能有⼀个字段为主键 3. ...

    使用JDBC在MySQL数据库中如何快速批量插入数据

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch() throws SQLException Adds a set of ...

    MySql数据库事务相关

    mySql的事务采取的是自动提交的模式,除非显示开始一个事务修改自动提交模式,值得注意的是,修改自动提交对非事务类型的表是无效的,因为它们本身不存在提交和回滚的概念,还有一些命令则是强制自动提交的,如DLL...

    Thinkphp完美运营级宠物猫区块链源码

    值得注意的是需要mysql8.0,建议使用阿里云数据库 RDS 版。 Thinkphp完美运营级宠物猫区块链源码 这款区块链界面比较简介。非市面上程序可比。值得注意的是需要mysql8.0,建议使用阿里云数据库 RDS 版。 Thinkphp...

    jdbc连接数据库的方式2

    下面是使用JDBC连接MySql的一个小的教程 1、查找驱动程序 MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java驱动...

    MySQL 数据库优化的具体方法说明

    以下的文章主要讲述的是实现MySQL数据库简单实用优化的具体方法,以及在实际操作中有哪些具体操作步骤是值得我们大家注意的。

    方便好用的远程数据库对象V1.3

    到此为止,2行代码使你的这个程序具有了将数据库发布出去的能力,其它机器的程序可以方便的通过它访问到数据库,像使用本地数据库一样。 客户端只需连接服务端即可,不管服务端是什么样的数据库,无需安装任何...

    MySQL各存储引擎区别与特点

    NDB存储引擎 介绍 2003年,MYSQL AB公司从Sony Ericsson 公司收购了NDB集群引擎 结构 ...关于NDB存储引擎,有一个问题值得注意,那就是NDB存储引擎的连接操作(JOIN)是在MySQL数据库层完成的,而不是在

    关于MySQL索引的几点值得注意的事项

    在数据库中,对性能影响最大的包括数据库的锁策略、缓存策略、索引策略、存储策略、执行计划优化策略。 索引策略决定数据库快速定位数据的效率,存储策略决定数据持久化的效率。 1.索引不存储null值。 更准确的说,...

    java SSM实现小区业主管理系统,支持在线js电子签名

    本项目是高质量的在线js电子签名SSM实现增删改查及分页查询实例,非常值得学习,使用了spring MVC+spring+mybatis 框架,mysql数据库,电子签名的数据使用base64存储于数据库,上传图片在前端进行压缩将base64上传至...

    MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项

    以下的文章主要介绍的是MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项是值得我们大家注意的,我们大家可能不知道过多的对索引进行使用将会造成滥用。因此MySQL索引也会有它的缺点: 虽然索引大大提高了查询...

    mysql-postgresql-converter:LanyrdMySQL到PostgreSQL转换脚本

    如何使用首先,以PostgreSQL兼容格式转储MySQL数据库mysqldump --compatible=postgresql --default-character-set=utf8 \-r databasename.mysql -u root databasename然后,使用dbconverter.py脚本对其进行转换...

    php配置+mysqlAdmin配置+apache配置的实现教程

    此时就可以连接mysql数据库了程序里面。 <br> <br>4) php+mysqlAdmin+apache的配置实现phpmysqlAdmin的功能 (注意和第3步的区别)此时只是作为使用mysql的一种工具 <br> 1。 下载 ...

    几个比较重要的MySQL变量

    MySQL变量很多,其中有一些MySQL变量非常值得我们注意,下面就为您介绍一些值得我们重点学习的MySQL变量,供您参考。 1 Threads_connected 首先需要注意的,想得到这个变量的值不能show variables like ‘Threads_...

    值得收藏的mysql常用命令集锦

    本文为大家详细整理了mysql常用命令,分享给大家,供大家参考 1、连接Mysql 格式:mysql -h主机地址 -u用户名 -p用户密码 1)、连接到本机上的MYSQL。 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u...

    CentOS mysql安装系统方法

    CentOS linux由于同时具有与RHEL的兼容性和企业级应用的稳定性,又允许用户自由使用,因此得到了越来越广泛的应用。 1]CentOS mysql安装解压 [root@localhost root]#...在这个地方值得注意的是,我们要把mysql-4.0.16安

    CDS_uniDAC_mmzmagicrmoV1.80

    很久没有发布东东了,今天看到盒子上有朋友发布了个三层的东东, 下来大概看了看,貌似使用起来不太方便,曾经用过ASTA和RmoObject,都不是那么让人满意,BUG多,并且庞大需要安装,使用十分不方便。 为了继续支持我...

    leetcode2-Awesome-Data-Engineering-Content:分享有趣和值得注意的数据工程内容

    分享有趣且值得注意的数据工程内容 - 即博客、播客、存储库、书籍、视频和 MOOC。 这主要是由我们的研究员伊戈尔·巴里诺夫 (Igor Barinov) 策划并为他们策划的,并受到我们其中一位研究员的启发。 如果您有想法或...

    Python学生管理系统(毕业设计&大作业)

    您可以在其中查看和新建表格,表格是 mysql 数据库的基本单元,类似于一张 excel,本程序的表格结构已经设计好,表格中的实例均有三个属性:姓名name,学号id,成绩grade,其中 id 为主码; 值得注意的是,本程序...

    Django搭建个人博客

    这个资源提供了一个快速搭建博客的解决方案,使用Django框架和MySQL数据库。它有很多特点和功能,使得博客站点变得更加易于管理和定制化。 其中最显著的特点是markdown渲染和代码高亮功能。这意味着你可以以更简洁...

Global site tag (gtag.js) - Google Analytics