⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysql-安全性-14.htm

📁 微软数据库开发梦工场多媒体教学-My sql篇.rar
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#000000" text="#FFFFFF">
<p><font color="#009900">举例一<br>
  </font> </p>
<p>在你刚刚新安装了一个MySQL服务器,在你增加了一个允许连接MySQL的用户,用下列语句: </p>
<p>GRANT ALL ON samp_db.* TO fred@*.snake.net IDENTIFIED &quot;cocoa&quot;</p>
<p>而fred碰巧在服务器主机上有个账号,所以他试图连接服务器:</p>
<p>%mysql -u fred -pcocoa samp_db<br>
  ERROR 1045: Access denied for user: 'fred@localhost' (Using password: YES)</p>
<p> 为什么?</p>
<p>原因是: </p>
<p>先考虑一下mysql_install_db如何建立初始权限表和服务器如何使用user表记录匹配客户连接。在你用mysql_install_db初始化你的数据库时,它创建类似这样的user表:</p>
<p>Host User <br>
  localhost<br>
  pit.snake.net<br>
  localhost<br>
  pit.snake.net root<br>
  root</p>
<p>头两个记录允许root指定localhost或主机名连接本地服务器,后两个允许匿名用户从本地连接。当增加fred用户后,</p>
<p>Host User <br>
  localhost<br>
  pit.snake.net<br>
  localhost<br>
  pit.snake.net<br>
  %.snake.net root<br>
  root</p>
<p>fred </p>
<p>在服务器启动时,它读取记录并排序它们(首先按主机,然后按主机上的用户),越具体越排在前面:</p>
<p>Host User <br>
  localhost<br>
  localhost<br>
  pit.snake.net<br>
  pit.snake.net<br>
  %.snake.net root</p>
<p>root</p>
<p>fred</p>
<p>有localhost的两个记录排在一起,而对root的记录排在第一,因为它比空值更具体。pit.snake.net的记录也类似。所有这些均是没有任何通配符的字面上的Host值,所以它们排在对fred记录的前面,特别是匿名用户排在fred之前。</p>
<p>结果是在fred试图从localhost连接时,Host列中的一个空用户名的记录在包含%.snake.net的记录前匹配。该记录的口令是空的,因为缺省的匿名用户没有口令。因为在fred连接时指定了一个口令,由一个错配且连接失败。</p>
<p>这里要记住的是,虽然用通配符指定用户可以从其连接的主机是很方便。但你从本地主机连接时会有问题,只要你在table表中保留匿名用户记录。</p>
<p>一般地,建议你删除匿名用户记录:</p>
<p>mysql&gt; DELETE FROM user WHERE User=&quot;&quot;;</p>
<p>更进一步,同时删除其他授权表中的任何匿名用户,有User列的表有db、tables_priv和columns_priv。</p>
<p></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -