当你试图联接一个MySQL服务器时,服务器基于你的身份和你是否能通过供应正确的口令验证身份来接受或拒绝连接。如果不是,服务器完全具结你的存取,否则,服务器接受连接,然后进入阶段2并且等待请求。
你的身份基于2个信息:
身份检查使用3个user 表(Host ,User 和Password )范围字段执行。服务器只有在一个user 表条目匹配你的主机名和用户名并且你提供了正确的口令时才接受连接。
在user 表范围字段可以如下被指定:
- 一个
Host 值可以是主机名或一个IP数字,或localhost 指出本地主机。
- 你可以在
Host 字段里使用通配符字符“%”和“_”。
- 一个
Host 值% 匹配任何主机名,一个空白Host 值等价于% 。注意这些值匹配能创建一个连接到你的服务器的任何主机!
- 通配符字符在
User 字段中不允许,但是你能指定空白的值,它匹配任何名字。如果user 表匹配到来的连接的条目有一个空白的用户名,用户被认为是匿名用户(没有名字的用户),而非客户实际指定的名字。这意味着一个空白的用户名被用于在连接期间的进一步的存取检查(即,在阶段2期间)。
Password 字段可以是空白的。这不意味着匹配任何口令,它意味着用户必须不指定一个口令进行连接。
非空白Password 值代表加密的口令。MySQL不以任何人可以看的纯文本格式存储口令,相反,正在试图联接的一个用户提供的口令被加密(使用PASSWORD() 函数),并且与存储了user 表中的已经加密的版本比较。如果他们匹配,口令是正确的。
(编辑:aniston)
|