MySQL数据库账户授权的相关管理解析 (1)(2)

 更新时间:2016年11月25日 16:41  点击:1694


1.1 谁能连接,从那儿连接?

你可以允许一个用户从特定的或一系列主机连接。有一个极端,如果你知道降职从一个主机连接,你可以将权限局限于单个主机:

GRANT ALL ON samp_db.* TO boris@localhost IDENTIFIED BY "ruby"GRANT ALL ON samp_db.* TO fred@res.mars.com IDENTIFIED BY "quartz"

(samp_db.*意思是“samp_db数据库的所有表)另一个极端是,你可能有一个经常旅行并需要能从世界各地的主机连接的用户max。在这种情况下,你可以允许他无论从哪里连接:

GRANT ALL ON samp_db.* TO max@% IDENTIFIED BY "diamond"

“%”字符起通配符作用,与LIKE模式匹配的含义相同。在上述语句中,它意味着“任何主机”。所以max和max@%等价。这是建立用户最简单的方法,但也是最不安全的。

取其中,你可以允许一个用户从一个受限的主机集合访问。例如,要允许mary从snake.net域的任何主机连接,用一个%.snake.net主机指定符:

GRANT ALL ON samp_db.* TO mary@.snake.net IDENTIFIED BY "quartz";

如果你喜欢,用户标识符的主机部分可以用IP地址而不是一个主机名来给定。你可以指定一个IP地址或一个包含模式字符的地址,而且,从MySQL 3.23,你还可以指定具有指出用于网络号的位数的网络掩码的IP号:


(T115)



  一. 软件下载
  Mysql
  下载版本:4.1.11
  http://dev.mysql.com/downloads/mysql/4.1.html

  JDBC驱动
  下载版本:3.1.8
  http://dev.mysql.com/downloads/connector/j/3.1.html

  Mysql界面插件:mysql-front
  下载版本镜像:HongKong(下回来安装就是中文版了)
  http://www.mysqlfront.de/download.html

  二. 软件安装
  1.安装mysql
  请参阅资料版区相关文章

  http://info.mysql.cn/install/2006/0208/81.html

  2.JDBC驱动:mysql-connector-java-3.1.8
  这只是一个压缩包,并不需要安装,只要将其解压,我么使用的是文件夹mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar.

  3. Mysql界面插件:mysql-front
  这是一个安装程序,按照提示安装就可以了.

  三. 环境配置
   首先,我要说明的是我现在tomcat的安装路径是: D:Program FilesJavaTomcat;JDK的安装路径是:D:Program FilesJavaj2sdk。

  在这里,需要配置环境变量的是JDBC驱动.在配置前先要把刚才说到的mysql-connector-java-3.1.8-bin.jar本地硬盘某处(我放的地方:D:Program FilesJavamysqlforjdbc),然后根据你放的地方,配置classpath,我的配置是这样的:

  D:Program filesJavaj2sdklib ools.jar;

  D:Program FilesJavaj2sdklibmysql-connector-java-3.1.8-bin-g.jar;

  D:Program FilesJavamysqlforjdbcmysql-connector-java-3.1.8-bin.jar

  配置这个的目的是让你的java应用程序找到连接mysql的驱动.

  配置完环境变量后还有很重要一步就是为JSP连接数据库配置驱动,这个其实很简单,就是把mysql-connector-java-3.1.8- bin.jar拷到某些文件夹里就行了,我在网上看了很多资料问了很多人,各种说法都有,我综合了一下,为了保险,我都全做了,呵呵,反正就是拷一个 400K的文件而已,现列出要把mysql-connector-java-3.1.8-bin.jar拷进去的文件夹,如下:
  D:Program FilesJavaTomcatcommonlib
  D:Program FilesJavaTomcatsharedlib

  四. 数据库的使用

  Mysql安装完毕以后,还有一些要注意的地方(参考):

  http://info.mysql.cn/install/2006/0208/82.html

  就象在文章提到的,mysql安装好后最重要一样就是要看数据库有没有作为系统服务启动了,所以在大家进行数据库操作前,应要看看,在操作系统的开始->运行->输入services.msc,确定你在安装时你设置的关于mysql的那个服务已经启动,这样你在操作数据库时不会报连接不上的错误.

  上面提到了一个较方便的mysql界面插件,但是这个界面是我在已经开始使用mysql后才找到的,刚开始我是在dos下用命令行进行操作的.虽然那个界面也可以进行建库啊,设定权限等操作,但是,我觉得懂得在使用命令行也是一个很重要的技能,所以我先从命令行开始说,怎样简单使用mysql.到后面会谈及mysql-front的使用.

  现在我想在mysql里建一个数据库shujuku,以及在数据库里建一个表biao.具体的命令如下(假设mysql我是刚安装好的)

  1. 进入dos状态(记住命令行的要运行在mysql的安装目录下的bin目录的)

  2. 连接mysql

MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MySQL 3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限。两条语句扮演了mysql数据库的前端角色,并提供与直接操作这些表的内容不同的另一种方法。CREATE和REVOKE语句影响4个表:授权表

内容

user 能连接服务器的用户以及他们拥有的任何全局权限

db 数据库级权限

tables_priv 表级权限

columns_priv 列级权限

还有第5个授权表(host),但它不受GRANT和REVOKE的影响。

当你对一个用户发出一条GRANT语句时,在user表中为该用户创建一条记录。如果语句指定任何全局权限(管理权限或适用于所有数据库的权限),这些也记录在user表中。如果你指定数据库、表和列级权限,他们被分别记录在db、tables_priv和columns_priv表中。

用GRANT和REVOKE比直接修改授权表更容易些,然而,建议你阅读一下《MySQL安全性指南》。这些表异常重要,而且作为一名管理员,你应该理解它们如何超越GRANT和REVOKE语句的功能水平。

在下面的章节中,我们将介绍如何设置MySQL用户账号并授权。我们也涉及如何撤权和从授权表中删除用户。

你可能也想考虑使用mysqlAccess和mysql_setpermission脚本,它是MySQL分发的一部分,它们是Perl脚本,提供GRANT语句的另一种选择设置用户账号。mysql_setpermission需要安装DBI支持。

1、 创建用户并授权

GRANT语句的语法看上去像这样:

GRANT privileges (columns) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION

要使用该语句,你需要填写下列部分:

privileges

授予用户的权限,下表列出可用于GRANT语句的权限指定符:

权限指定符

近日SAP的开发者修正了一个存在SAP MaxDB数据库中的严重漏洞,该漏洞可以被黑客利用来执行恶意代码。


来自赛门铁克的研究人员Olive Karow发现了这个数据库漏洞。该漏洞在最新版本MaxDB 7.6.00.31中被修补。


根据赛门铁克发布的报告,“通过发送一个变形的HTTP请求,攻击者可以获得wahttp进程的权限,从而执行恶意代码。不需要认证就可以成功的利用该漏洞。”

根据赛门铁克的报告,有一个临时性的解决办法,MaxDB客户可以禁用SAP-DB的WWW服务或控制其访问权限。SAP客户可以从www.service.sap.com下载最新版的数据库。


在2004年,SAP与开源数据库MySQL达成了一个协议,可以对SAP DB专利共享,随后该数据库更名为MaxDB。MaxDB被进行了最优化,以与mySAP商务套件和MySQL数据库管理系统配合运行。


原文链接:http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1213576,00.html


(t114)


问:

MySQL已经通过免费和开源的特性已经慢慢的占领市场,MySQL崛起的过程中Oracle,DB2等都采取了部分代码开源的崛起,我想知道MySQL面对市场竞争对手的方案,MySQL会采取怎样的措施?

David Axmark:

开源和免费是两个完全不同的概念,免费并不是真正的开源,这是最大的区别。我们虽然是免费的但是没有开源,所谓开源是所有的代码都公开了,我们只是编好的你可以用。

我所知道其他专有数据库的开源项目,往往是公司内部已经“死”掉的项目,而且客户也没有需求,所以就开源了。比如(IN??)就是用户越来越少,然后就开源了。

问:

这样说的话是不是因为这些公司用开源满足客户的需求,单方面最终目标是赚钱,MySQL为什么要开源?MySQL的最终目标是不是为了赚钱?

David Axmark:

我们一直就是盈利,只不过增长投资以后要拓展,拓展以后有点亏钱,但是我们随时可以变得盈利。任何一家公司存在本身就都是要赚钱的,不光是开源的还是怎么样。但是我们赚的钱要比一般的软件公司赚的少很多,尽管是这样我们发展的还是很快的。

问:

是不是可以理解为这是“薄利多销”的特点,就是挣的钱很少,但是是迅速的占领市场份额。您刚才演讲的时候说到现在排名前面的还有两个,一个是 SQL Server,一个是Oracle,面对这两个强大的竞争对手,MySQL自己最大的核心竞争力是什么?

David Axmark:

让我们看吧。

问:

我想请问一下周先生,刚才演讲的时候也有人讲到中国人对开源不很理解,周先生是致力于开源事业的,您对这个问题怎么看?

周群:

我觉得中国市场和国外市场有所区别。我经常开一些开源论坛的会,包括SUN的,会上大家讨论的时候外国专家和中国专家,中国专家愿意谈跟Windows兼容性的问题,外国专家认为不应该花精力在微软这个事上的,因为要兼容的话不断的跟微软走。微软随时说随便找一个东西都可以不兼容,所以他们集体的对中国的开源界有一些争论。有些开源专家认为中国这么多的用户,我们还是要把兼容性解决。我们中国有很好的开源精神领袖,他在会上发言说,因为他参与了世界开源的讨论,所以他也说中国怎么跟国外配合发展开源系统,而不是中国自己关起门来。当中国的专家提跟Windows兼容的时候遇到这样那样的难题,就是应该没有人支持你,拿到国际上也没有上给你钱。

[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • C#连接加密的Sqlite数据库的方法

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • 深入分析C#连接Oracle数据库的连接字符串详解

    本篇文章是对C#连接Oracle数据库的连接字符串进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • node.js如何操作MySQL数据库

    这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29