在这里我们将讨论的是MySQL数据库授权原则,这也事关广大中小企业数据库的安全问题。
MySQL是一个跨平台的开源关系型数据库管理系统,是我们常用的最经济实惠的数据库,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,更让用户得到最切实的实在,很多用户在应用中对授权原则不是很了了解,下面我们就为大家来解析。MySQL是一个跨平台的开源关系型数据库管理系统,是我们常用的最经济实惠的数据库,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,更让用户得到最切实的实在,很多用户在应用中对授权原则不是很了了解,下面我们就为大家来解析。
服务器重新启动的情况
当mysqld启动时,所有的授权表内容被读进存储器并且从那时开始生效。
被服务器立即应用的情况
用GRANT、REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到。
直接修改授权表的情况
如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSH
PRIVILEGES语句或运行mysqladmin
flush-privileges告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。
对现有客户连接的影响情况
当服务器注意到授权表被改变了时,现存的客户连接有如下影响:
◆表和列权限在客户的下一次请求时生效。
◆数据库权限改变在下一个USE db_name命令生效。
◆全局权限的改变和口令改变在下一次客户连接时生效。
授权原则
无论怎么小心都难免在给用户授权时留有漏洞,希望下面的内容能给你一些帮助,你一般应该遵守这些规则。
只有root用户拥有授权表的改写权
不要把授权表的改写权授予除root用户之外的其它用户(当然,如果你可以用另一个用户代替root用户进行管理,以增加安全性)。因为这样,用户可以通过改写授权表而推翻现有的权限。产生安全漏洞。
一般情况下,你可能不会犯这个错误,但是在安装新的分发,
初始授权表之后。这个漏洞是存在的,如果你不了解这时授权表的内容你可能会犯错误。
在Unix(Linux)上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权表的 mysql数据库和初始权限。在Windows上,运行分发中的Setup程序初始化数据目录和mysql数据库。假定服务器也在运行。
当你第一次在机器上安装MySQL时,mysql数据库中的授权表是这样初始化的:
◆你可以从本地主机(localhost)上以root连接而不指定口令。root用户拥有所有权限(包括管理权限)并可做任何事情。(顺便说明,MySQL超级用户与Unix超级用户有相同的名字,他们彼此毫无关系。)
◆匿名访问被授予用户可从本地连接名为test和任何名字以test_开始的数据库。匿名用户可对数据库做任何事情,但无管理权限。
一般地,建议你删除匿名用户记录
mysql> DELETE FROM user WHERE User=”";
更进一步,同时删除其他授权表中的任何匿名用户,有User列的表有db、tables_priv和columns_priv。
另外要给root用户设置密码。
关于用户、口令及主机的设置
◆对所有MySQL用户使用口令。
记住,如果other_user没有口令,任何人能简单地用mysql -u other_user
db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑 mysql_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令,象这样:
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’new_password’)
-> WHERE user=’root’;
mysql> FLUSH PRIVILEGES;
分享到:
相关推荐
在《MySQL数据库原理及应用(第2版)(微课版)》中,我们通常会深入探讨数据库的基本概念、设计原则以及实际操作技巧。这份教学资料包含了一个Mysql数据库的备份文件,为学习者提供了实践平台,便于理解和掌握...
通过以上详细解析,我们可以看到MySQL数据库安全涉及多个层面,从权限管理到内部及外部安全性,每一点都需要系统管理员仔细考虑和妥善处理。掌握了这些关键点,就能够更加有效地保护MySQL数据库的安全。
《电子商城项目(Eclipse)+MySQL数据库:深入解析与实战指南》 在信息技术日新月异的今天,电子商务已经成为企业的重要组成部分。本项目“电子商城”是基于Java技术栈,利用Eclipse集成开发环境和MySQL数据库构建...
"精选_毕业设计_基于QT和MYSQL数据库实现的学生信息管理系统_完整源码" 这个标题揭示了这是一个毕业设计项目,重点在于一个学生信息管理系统。该系统是利用QT作为开发工具,结合MYSQL数据库来实现的。QT是一个跨平台...
2. MySQL数据库:MySQL是一款关系型数据库管理系统,因其高效、稳定和开源特性而受到广大开发者喜爱。在学生成绩管理系统中,MySQL用于存储学生信息、课程信息、成绩等数据,并支持各种查询操作,如查找、排序、统计...
"JAVA Web+MySQL的学生信息管理系统" 是一个基于Java Web技术,并结合MySQL数据库来实现的学生信息管理的应用程序。它旨在提供一个高效、可靠且用户友好的平台,用于存储、检索和管理学生的各种信息。 【描述详解】...
**MySQL数据库**:MySQL是一个流行的开源关系型数据库管理系统,被广泛应用于Web应用中。它的性能高、易用性好,且支持多种数据库操作,如CRUD(创建、读取、更新、删除)。在这个购物平台上,MySQL将用于存储商品...
本资源包含20个使用Java编程语言实现的系统案例源码以及配套的MySQL数据库文件,是学习和理解Java实际应用的宝贵资料。这些系统案例涵盖了Java在实际开发中的多种应用场景,可以帮助开发者提升技能,理解软件工程的...
综上所述,文件内容提供了与数据库操作和管理相关的大量知识,包括了创建数据库对象、SQL语句的编写、数据库设计原则、事务处理、安全性与完整性等多个方面。掌握这些知识点对于数据库设计、开发和维护是非常重要的...
常见的数据库类型包括关系型数据库(如MySQL、Oracle)、非关系型数据库(如MongoDB、Redis)以及分布式数据库等。数据库系统则是在硬件和操作系统之上,为用户和应用程序提供数据管理服务的一整套软件。 在PPT中,...
本主题将深入探讨数据库设计的相关知识点,包括概念模型、逻辑模型、物理模型以及设计原则。 一、概念模型 概念模型,也称为信息模型,是数据库设计的第一步。它主要使用实体-关系(E-R)图来表示现实世界的对象和...
本文将深入探讨一个基于SSM(Spring、SpringMVC、MyBatis)框架和MySQL数据库的汽车共享平台的源码数据库设计与实现。SSM框架因其轻量级、灵活和高效的特点,在Java Web开发中被广泛应用。而MySQL作为开源的关系型...
本文将深入探讨一个基于SSM(Spring、SpringMVC、MyBatis)框架与MySQL数据库构建的在线收银系统源码,帮助读者理解其架构、功能及实现方式。 一、SSM框架解析 1. Spring:Spring是Java企业级应用的核心框架,它...
* 数据结构的设计原则 * 数据库系统的数据字典 知识点2:设计特定的数据结构,用于存储数据表中的数据。 * 数据表的数据结构设计 * 数据表的存储管理 * 数据表的查询语言 知识点3:设计特定的数据结构,用于存储...
在信息技术日新月异的今天,Java作为后端开发的主流语言,搭配SSM(Spring、SpringMVC、MyBatis)框架与MySQL数据库构建的系统应用广泛,尤其在企业级项目中占据着重要地位。本篇文章将对“基于SSM+MySQL萌宠优购...
在IT行业中,数据库管理是至关重要的任务之一,尤其是在需要远程访问MySQL数据库时。远程连接MySQL数据库可以帮助开发人员、系统管理员和其他IT专业人员在不同地点进行数据管理,但这也带来了一些安全和性能方面的...
5. **数据库系统架构**:理解不同类型的数据库管理系统,如关系型数据库(如Oracle、MySQL、SQL Server)、非关系型数据库(如MongoDB、Redis)等,以及它们的适用场景。 6. **数据库设计**:如何进行需求分析,...
这份压缩包中的"MYSQL高效编程.pdf"很可能包含了关于优化MySQL性能、编写高效的SQL语句、理解数据库设计原则以及最佳实践等多个方面的知识。下面,我将详细解析这些可能涵盖的主题。 1. **SQL语句优化**: - **...
《MySQL权威指南》是一本深入探讨MySQL数据库管理系统的专业书籍,英文版为读者提供了原汁原味的技术解析。作为全球广泛使用的开源关系型数据库系统,MySQL因其高效、稳定和易用而备受青睐。这本书旨在帮助读者从...