List:Commits« Previous MessageNext Message »
From:paul.dubois Date:March 25 2009 4:42pm
Subject:svn commit - mysqldoc@docsrva: r14367 - in trunk: . refman-4.1 refman-5.0 refman-5.1 refman-6.0
View as plain text  
Author: paul
Date: 2009-03-25 17:42:35 +0100 (Wed, 25 Mar 2009)
New Revision: 14367

Log:
 r39900@frost:  paul | 2009-03-25 11:40:03 -0500
 Access control: General revisions


Modified:
   trunk/refman-4.1/dba-privilege-system.xml
   trunk/refman-4.1/programs-client.xml
   trunk/refman-5.0/dba-privilege-system.xml
   trunk/refman-5.0/programs-client-core.xml
   trunk/refman-5.1/dba-privilege-system.xml
   trunk/refman-5.1/programs-client-core.xml
   trunk/refman-6.0/dba-privilege-system.xml
   trunk/refman-6.0/programs-client-core.xml

Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:41755
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:39899
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:37251
   + 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:41755
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:39900
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:37251


Modified: trunk/refman-4.1/dba-privilege-system.xml
===================================================================
--- trunk/refman-4.1/dba-privilege-system.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-4.1/dba-privilege-system.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 12, Lines Added: 132, Lines Deleted: 165; 13124 bytes

@@ -53,6 +53,38 @@
   </para>
 
   <para>
+    There are some things that you cannot do with the MySQL privilege
+    system:
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        You cannot explicitly specify that a given user should be denied
+        access. That is, you cannot explicitly match a user and then
+        refuse the connection.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        You cannot specify that a user has privileges to create or drop
+        tables in a database but not to create or drop the database
+        itself.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        A password applies globally to an account. You cannot associate
+        a password with a specific object such as a database or table.
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
     The user interface to the MySQL privilege system consists of SQL
     statements such as <literal role="stmt">GRANT</literal> and
     <literal role="stmt">REVOKE</literal>. See

@@ -136,38 +168,6 @@
   </para>
 
   <para>
-    There are some things that you cannot do with the MySQL privilege
-    system:
-  </para>
-
-  <itemizedlist>
-
-    <listitem>
-      <para>
-        You cannot explicitly specify that a given user should be denied
-        access. That is, you cannot explicitly match a user and then
-        refuse the connection.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        You cannot specify that a user has privileges to create or drop
-        tables in a database but not to create or drop the database
-        itself.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        A password applies globally to an account. You cannot associate
-        a password with a specific object such as a database or table.
-      </para>
-    </listitem>
-
-  </itemizedlist>
-
-  <para>
     For general security-related advice, see <xref linkend="security"/>.
     For help in diagnosing privilege-related problems, see
     <xref linkend="access-denied"/>.

@@ -762,7 +762,7 @@
 
   <section id="grant-table-structure">
 
-    <title>The Privilege System Grant Tables</title>
+    <title>Privilege System Grant Tables</title>
 
     <indexterm>
       <primary>grant tables</primary>

@@ -831,6 +831,86 @@
     </itemizedlist>
 
     <para>
+      The server uses the grant tables in the following manner:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          The <literal>user</literal> table scope columns determine
+          whether to reject or allow incoming connections. For allowed
+          connections, any privileges granted in the
+          <literal>user</literal> table indicate the user's global
+          (superuser) privileges. Any privilege granted in this table
+          applies to <emphasis>all</emphasis> databases on the server.
+        </para>
+
+        <note>
+          <para>
+            Because any global privilege is considered a privilege for
+            all databases, any global privilege enables a user to see
+            all database names with <literal role="stmt">SHOW
+            DATABASES</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>db</literal> table scope columns determine which
+          users can access which databases from which hosts. The
+          privilege columns determine which operations are allowed. A
+          privilege granted at the database level applies to the
+          database and to all objects in the database, such as tables
+          and stored programs.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>host</literal> table is used in conjunction with
+          the <literal>db</literal> table when you want a given
+          <literal>db</literal> table row to apply to several hosts. For
+          example, if you want a user to be able to use a database from
+          several hosts in your network, leave the
+          <literal>Host</literal> value empty in the user's
+          <literal>db</literal> table row, then populate the
+          <literal>host</literal> table with a row for each of those
+          hosts. This mechanism is described more detail in
+          <xref linkend="request-access"/>.
+        </para>
+
+        <note>
+          <para>
+            The <literal>host</literal> table must be modified directly
+            with statements such as
+            <literal role="stmt">INSERT</literal>,
+            <literal role="stmt">UPDATE</literal>, and
+            <literal role="stmt">DELETE</literal>. It is not affected by
+            statements such as <literal role="stmt">GRANT</literal> and
+            <literal role="stmt">REVOKE</literal> that modify the grant
+            tables indirectly. Most MySQL installations need not use
+            this table at all.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>tables_priv</literal> and
+          <literal>columns_priv</literal> tables are similar to the
+          <literal>db</literal> table, but are more fine-grained: They
+          apply at the table and column levels rather than at the
+          database level. A privilege granted at the table level applies
+          to the table and to all its columns. A privilege granted at
+          the column level applies only to a specific column.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
       The server uses the <literal>user</literal>,
       <literal>db</literal>, and <literal>host</literal> tables in the
       <literal>mysql</literal> database at both the first and second

@@ -1233,86 +1313,6 @@
     </informaltable>
 
     <para>
-      Briefly, the server uses the grant tables in the following manner:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          The <literal>user</literal> table scope columns determine
-          whether to reject or allow incoming connections. For allowed
-          connections, any privileges granted in the
-          <literal>user</literal> table indicate the user's global
-          (superuser) privileges. Any privilege granted in this table
-          applies to <emphasis>all</emphasis> databases on the server.
-        </para>
-
-        <note>
-          <para>
-            Because any global privilege is considered a privilege for
-            all databases, any global privilege enables a user to see
-            all database names with <literal role="stmt">SHOW
-            DATABASES</literal>.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>db</literal> table scope columns determine which
-          users can access which databases from which hosts. The
-          privilege columns determine which operations are allowed. A
-          privilege granted at the database level applies to the
-          database and to all objects in the database, such as tables
-          and stored programs.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>host</literal> table is used in conjunction with
-          the <literal>db</literal> table when you want a given
-          <literal>db</literal> table row to apply to several hosts. For
-          example, if you want a user to be able to use a database from
-          several hosts in your network, leave the
-          <literal>Host</literal> value empty in the user's
-          <literal>db</literal> table row, then populate the
-          <literal>host</literal> table with a row for each of those
-          hosts. This mechanism is described more detail in
-          <xref linkend="request-access"/>.
-        </para>
-
-        <note>
-          <para>
-            The <literal>host</literal> table must be modified directly
-            with statements such as
-            <literal role="stmt">INSERT</literal>,
-            <literal role="stmt">UPDATE</literal>, and
-            <literal role="stmt">DELETE</literal>. It is not affected by
-            statements such as <literal role="stmt">GRANT</literal> and
-            <literal role="stmt">REVOKE</literal> that modify the grant
-            tables indirectly. Most MySQL installations need not use
-            this table at all.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>tables_priv</literal> and
-          <literal>columns_priv</literal> tables are similar to the
-          <literal>db</literal> table, but are more fine-grained: They
-          apply at the table and column levels rather than at the
-          database level. A privilege granted at the table level applies
-          to the table and to all its columns. A privilege granted at
-          the column level applies only to a specific column.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
       Administrative privileges (such as
       <literal role="priv">RELOAD</literal> or
       <literal role="priv">SHUTDOWN</literal>) are specified only in the

@@ -1568,20 +1568,6 @@
 </programlisting>
       </listitem>
 
-      <listitem>
-        <para>
-          With one exception, a blank <literal>Host</literal> value in
-          the grant tables is the same as <literal>'%'</literal>. The
-          exception is that A blank <literal>Host</literal> value in a
-          <literal>db</literal> table row means that its privileges
-          should be combined with those in the row in the
-          <literal>host</literal> table that matches the client host
-          name. The privileges are combined using an AND (intersection)
-          operation, not OR (union). <xref linkend="request-access"/>,
-          discusses use of the <literal>host</literal> table further.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <para>

@@ -1631,8 +1617,12 @@
       <literal role="func">PASSWORD()</literal> function). The encrypted
       password then is used during the connection process when checking
       whether the password is correct. (This is done without the
-      encrypted password ever traveling over the connection.) From
-      MySQL's point of view, the encrypted password is the
+      encrypted password ever traveling over the connection.) See
+      <xref linkend="user-names"/>.
+    </para>
+
+    <para>
+      From MySQL's point of view, the encrypted password is the
       <emphasis>real</emphasis> password, so you should never give
       anyone access to it. In particular, <emphasis>do not give
       non-administrative users read access to tables in the

@@ -1640,15 +1630,6 @@
     </para>
 
     <para>
-      From version 4.1 on, MySQL employs a stronger authentication
-      method that has better password protection during the connection
-      process than in earlier versions. It is secure even if TCP/IP
-      packets are sniffed or the <literal>mysql</literal> database is
-      captured. <xref linkend="password-hashing"/>, discusses password
-      encryption further.
-    </para>
-
-    <para>
       The following table shows how various combinations of
       <literal>Host</literal> and <literal>User</literal> values in the
       <literal>user</literal> table apply to incoming connections.

@@ -1976,6 +1957,15 @@
 
       <listitem>
         <para>
+          A blank <literal>User</literal> value in the
+          <literal>db</literal> table matches the anonymous user. A
+          non-blank value matches literally; there are no wildcards in
+          user names.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           The wildcard characters <quote><literal>%</literal></quote>
           and <quote><literal>_</literal></quote> can be used in the
           <literal>Host</literal> and <literal>Db</literal> columns of

@@ -2017,13 +2007,6 @@
         </para>
       </listitem>
 
-      <listitem>
-        <para>
-          A blank <literal>User</literal> value in the
-          <literal>db</literal> table matches the anonymous user.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <indexterm>

@@ -2275,6 +2258,10 @@
 +--------------------+----+-
 </programlisting>
 
+  </section>
+
+  <section id="privilege-changes">
+
     <indexterm>
       <primary>privilege</primary>
       <secondary>changes</secondary>

@@ -2284,26 +2271,6 @@
       <primary>changes to privileges</primary>
     </indexterm>
 
-    <indexterm>
-      <primary>tables</primary>
-      <secondary>grant</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>grant tables</primary>
-    </indexterm>
-
-    <para>
-      Naturally, you should always test your changes to the grant tables
-      (for example, by using <literal role="stmt">SHOW GRANTS</literal>)
-      to make sure that your access privileges are actually set up the
-      way you think they are.
-    </para>
-
-  </section>
-
-  <section id="privilege-changes">
-
     <title>When Privilege Changes Take Effect</title>
 
     <para>


Modified: trunk/refman-4.1/programs-client.xml
===================================================================
--- trunk/refman-4.1/programs-client.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-4.1/programs-client.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 1, Lines Added: 7, Lines Deleted: 0; 808 bytes

@@ -1553,6 +1553,13 @@
       </para>
 
       <para>
+        The <filename>.mysql_history</filename> should be protected with
+        a restrictive access mode because sensitive information might be
+        written to it, such as the text of SQL statements that contain
+        passwords. See <xref linkend="password-security-user"/>.
+      </para>
+
+      <para>
         If you do not want to maintain a history file, first remove
         <filename>.mysql_history</filename> if it exists, and then use
         either of the following techniques:


Modified: trunk/refman-5.0/dba-privilege-system.xml
===================================================================
--- trunk/refman-5.0/dba-privilege-system.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-5.0/dba-privilege-system.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 12, Lines Added: 143, Lines Deleted: 177; 13937 bytes

@@ -53,6 +53,39 @@
   </para>
 
   <para>
+    There are some things that you cannot do with the MySQL privilege
+    system:
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        You cannot explicitly specify that a given user should be denied
+        access. That is, you cannot explicitly match a user and then
+        refuse the connection.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        You cannot specify that a user has privileges to create or drop
+        tables in a database but not to create or drop the database
+        itself.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        A password applies globally to an account. You cannot associate
+        a password with a specific object such as a database, table, or
+        routine.
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
     The user interface to the MySQL privilege system consists of SQL
     statements such as <literal role="stmt">CREATE USER</literal>,
     <literal role="stmt">GRANT</literal>, and

@@ -137,39 +170,6 @@
   </para>
 
   <para>
-    There are some things that you cannot do with the MySQL privilege
-    system:
-  </para>
-
-  <itemizedlist>
-
-    <listitem>
-      <para>
-        You cannot explicitly specify that a given user should be denied
-        access. That is, you cannot explicitly match a user and then
-        refuse the connection.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        You cannot specify that a user has privileges to create or drop
-        tables in a database but not to create or drop the database
-        itself.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        A password applies globally to an account. You cannot associate
-        a password with a specific object such as a database, table, or
-        routine.
-      </para>
-    </listitem>
-
-  </itemizedlist>
-
-  <para>
     For general security-related advice, see <xref linkend="security"/>.
     For help in diagnosing privilege-related problems, see
     <xref linkend="access-denied"/>.

@@ -862,7 +862,7 @@
 
   <section id="grant-table-structure">
 
-    <title>The Privilege System Grant Tables</title>
+    <title>Privilege System Grant Tables</title>
 
     <indexterm>
       <primary>grant tables</primary>

@@ -931,6 +931,96 @@
     </itemizedlist>
 
     <para>
+      The server uses the grant tables in the following manner:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          The <literal>user</literal> table scope columns determine
+          whether to reject or allow incoming connections. For allowed
+          connections, any privileges granted in the
+          <literal>user</literal> table indicate the user's global
+          (superuser) privileges. Any privilege granted in this table
+          applies to <emphasis>all</emphasis> databases on the server.
+        </para>
+
+        <note>
+          <para>
+            Because any global privilege is considered a privilege for
+            all databases, any global privilege enables a user to see
+            all database names with <literal role="stmt">SHOW
+            DATABASES</literal> or by examining the
+            <literal role="is">SCHEMATA</literal> table of
+            <literal>INFORMATION_SCHEMA</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>db</literal> table scope columns determine which
+          users can access which databases from which hosts. The
+          privilege columns determine which operations are allowed. A
+          privilege granted at the database level applies to the
+          database and to all objects in the database, such as tables
+          and stored programs.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>host</literal> table is used in conjunction with
+          the <literal>db</literal> table when you want a given
+          <literal>db</literal> table row to apply to several hosts. For
+          example, if you want a user to be able to use a database from
+          several hosts in your network, leave the
+          <literal>Host</literal> value empty in the user's
+          <literal>db</literal> table row, then populate the
+          <literal>host</literal> table with a row for each of those
+          hosts. This mechanism is described more detail in
+          <xref linkend="request-access"/>.
+        </para>
+
+        <note>
+          <para>
+            The <literal>host</literal> table must be modified directly
+            with statements such as
+            <literal role="stmt">INSERT</literal>,
+            <literal role="stmt">UPDATE</literal>, and
+            <literal role="stmt">DELETE</literal>. It is not affected by
+            statements such as <literal role="stmt">GRANT</literal> and
+            <literal role="stmt">REVOKE</literal> that modify the grant
+            tables indirectly. Most MySQL installations need not use
+            this table at all.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>tables_priv</literal> and
+          <literal>columns_priv</literal> tables are similar to the
+          <literal>db</literal> table, but are more fine-grained: They
+          apply at the table and column levels rather than at the
+          database level. A privilege granted at the table level applies
+          to the table and to all its columns. A privilege granted at
+          the column level applies only to a specific column.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>procs_priv</literal> table applies to stored
+          routines. A privilege granted at the routine level applies
+          only to a single routine.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
       The server uses the <literal>user</literal>,
       <literal>db</literal>, and <literal>host</literal> tables in the
       <literal>mysql</literal> database at both the first and second

@@ -1421,96 +1511,6 @@
     </informaltable>
 
     <para>
-      Briefly, the server uses the grant tables in the following manner:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          The <literal>user</literal> table scope columns determine
-          whether to reject or allow incoming connections. For allowed
-          connections, any privileges granted in the
-          <literal>user</literal> table indicate the user's global
-          (superuser) privileges. Any privilege granted in this table
-          applies to <emphasis>all</emphasis> databases on the server.
-        </para>
-
-        <note>
-          <para>
-            Because any global privilege is considered a privilege for
-            all databases, any global privilege enables a user to see
-            all database names with <literal role="stmt">SHOW
-            DATABASES</literal> or by examining the
-            <literal role="is">SCHEMATA</literal> table of
-            <literal>INFORMATION_SCHEMA</literal>.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>db</literal> table scope columns determine which
-          users can access which databases from which hosts. The
-          privilege columns determine which operations are allowed. A
-          privilege granted at the database level applies to the
-          database and to all objects in the database, such as tables
-          and stored programs.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>host</literal> table is used in conjunction with
-          the <literal>db</literal> table when you want a given
-          <literal>db</literal> table row to apply to several hosts. For
-          example, if you want a user to be able to use a database from
-          several hosts in your network, leave the
-          <literal>Host</literal> value empty in the user's
-          <literal>db</literal> table row, then populate the
-          <literal>host</literal> table with a row for each of those
-          hosts. This mechanism is described more detail in
-          <xref linkend="request-access"/>.
-        </para>
-
-        <note>
-          <para>
-            The <literal>host</literal> table must be modified directly
-            with statements such as
-            <literal role="stmt">INSERT</literal>,
-            <literal role="stmt">UPDATE</literal>, and
-            <literal role="stmt">DELETE</literal>. It is not affected by
-            statements such as <literal role="stmt">GRANT</literal> and
-            <literal role="stmt">REVOKE</literal> that modify the grant
-            tables indirectly. Most MySQL installations need not use
-            this table at all.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>tables_priv</literal> and
-          <literal>columns_priv</literal> tables are similar to the
-          <literal>db</literal> table, but are more fine-grained: They
-          apply at the table and column levels rather than at the
-          database level. A privilege granted at the table level applies
-          to the table and to all its columns. A privilege granted at
-          the column level applies only to a specific column.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>procs_priv</literal> table applies to stored
-          routines. A privilege granted at the routine level applies
-          only to a single routine.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
       Administrative privileges (such as
       <literal role="priv">RELOAD</literal> or
       <literal role="priv">SHUTDOWN</literal>) are specified only in the

@@ -1756,20 +1756,6 @@
 </programlisting>
       </listitem>
 
-      <listitem>
-        <para>
-          With one exception, a blank <literal>Host</literal> value in
-          the grant tables is the same as <literal>'%'</literal>. The
-          exception is that A blank <literal>Host</literal> value in a
-          <literal>db</literal> table row means that its privileges
-          should be combined with those in the row in the
-          <literal>host</literal> table that matches the client host
-          name. The privileges are combined using an AND (intersection)
-          operation, not OR (union). <xref linkend="request-access"/>,
-          discusses use of the <literal>host</literal> table further.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <para>

@@ -1819,8 +1805,12 @@
       <literal role="func">PASSWORD()</literal> function). The encrypted
       password then is used during the connection process when checking
       whether the password is correct. (This is done without the
-      encrypted password ever traveling over the connection.) From
-      MySQL's point of view, the encrypted password is the
+      encrypted password ever traveling over the connection.) See
+      <xref linkend="user-names"/>.
+    </para>
+
+    <para>
+      From MySQL's point of view, the encrypted password is the
       <emphasis>real</emphasis> password, so you should never give
       anyone access to it. In particular, <emphasis>do not give
       non-administrative users read access to tables in the

@@ -1828,16 +1818,6 @@
     </para>
 
     <para>
-      MySQL &current-series; employs the stronger authentication method
-      (first implemented in MySQL 4.1) that has better password
-      protection during the connection process than in earlier versions.
-      It is secure even if TCP/IP packets are sniffed or the
-      <literal>mysql</literal> database is captured.
-      <xref linkend="password-hashing"/>, discusses password encryption
-      further.
-    </para>
-
-    <para>
       The following table shows how various combinations of
       <literal>Host</literal> and <literal>User</literal> values in the
       <literal>user</literal> table apply to incoming connections.

@@ -2166,6 +2146,15 @@
 
       <listitem>
         <para>
+          A blank <literal>User</literal> value in the
+          <literal>db</literal> table matches the anonymous user. A
+          non-blank value matches literally; there are no wildcards in
+          user names.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           The wildcard characters <quote><literal>%</literal></quote>
           and <quote><literal>_</literal></quote> can be used in the
           <literal>Host</literal> and <literal>Db</literal> columns of

@@ -2207,13 +2196,6 @@
         </para>
       </listitem>
 
-      <listitem>
-        <para>
-          A blank <literal>User</literal> value in the
-          <literal>db</literal> table matches the anonymous user.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <indexterm>

@@ -2472,6 +2454,10 @@
 +--------------------+----+-
 </programlisting>
 
+  </section>
+
+  <section id="privilege-changes">
+
     <indexterm>
       <primary>privilege</primary>
       <secondary>changes</secondary>

@@ -2481,26 +2467,6 @@
       <primary>changes to privileges</primary>
     </indexterm>
 
-    <indexterm>
-      <primary>tables</primary>
-      <secondary>grant</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>grant tables</primary>
-    </indexterm>
-
-    <para>
-      Naturally, you should always test your changes to the grant tables
-      (for example, by using <literal role="stmt">SHOW GRANTS</literal>)
-      to make sure that your access privileges are actually set up the
-      way you think they are.
-    </para>
-
-  </section>
-
-  <section id="privilege-changes">
-
     <title>When Privilege Changes Take Effect</title>
 
     <para>


Modified: trunk/refman-5.0/programs-client-core.xml
===================================================================
--- trunk/refman-5.0/programs-client-core.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-5.0/programs-client-core.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 1, Lines Added: 7, Lines Deleted: 0; 823 bytes

@@ -1691,6 +1691,13 @@
       </para>
 
       <para>
+        The <filename>.mysql_history</filename> should be protected with
+        a restrictive access mode because sensitive information might be
+        written to it, such as the text of SQL statements that contain
+        passwords. See <xref linkend="password-security-user"/>.
+      </para>
+
+      <para>
         If you do not want to maintain a history file, first remove
         <filename>.mysql_history</filename> if it exists, and then use
         either of the following techniques:


Modified: trunk/refman-5.1/dba-privilege-system.xml
===================================================================
--- trunk/refman-5.1/dba-privilege-system.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-5.1/dba-privilege-system.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 12, Lines Added: 143, Lines Deleted: 177; 13937 bytes

@@ -53,6 +53,39 @@
   </para>
 
   <para>
+    There are some things that you cannot do with the MySQL privilege
+    system:
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        You cannot explicitly specify that a given user should be denied
+        access. That is, you cannot explicitly match a user and then
+        refuse the connection.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        You cannot specify that a user has privileges to create or drop
+        tables in a database but not to create or drop the database
+        itself.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        A password applies globally to an account. You cannot associate
+        a password with a specific object such as a database, table, or
+        routine.
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
     The user interface to the MySQL privilege system consists of SQL
     statements such as <literal role="stmt">CREATE USER</literal>,
     <literal role="stmt">GRANT</literal>, and

@@ -137,39 +170,6 @@
   </para>
 
   <para>
-    There are some things that you cannot do with the MySQL privilege
-    system:
-  </para>
-
-  <itemizedlist>
-
-    <listitem>
-      <para>
-        You cannot explicitly specify that a given user should be denied
-        access. That is, you cannot explicitly match a user and then
-        refuse the connection.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        You cannot specify that a user has privileges to create or drop
-        tables in a database but not to create or drop the database
-        itself.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        A password applies globally to an account. You cannot associate
-        a password with a specific object such as a database, table, or
-        routine.
-      </para>
-    </listitem>
-
-  </itemizedlist>
-
-  <para>
     For general security-related advice, see <xref linkend="security"/>.
     For help in diagnosing privilege-related problems, see
     <xref linkend="access-denied"/>.

@@ -898,7 +898,7 @@
 
   <section id="grant-table-structure">
 
-    <title>The Privilege System Grant Tables</title>
+    <title>Privilege System Grant Tables</title>
 
     <indexterm>
       <primary>grant tables</primary>

@@ -967,6 +967,96 @@
     </itemizedlist>
 
     <para>
+      The server uses the grant tables in the following manner:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          The <literal>user</literal> table scope columns determine
+          whether to reject or allow incoming connections. For allowed
+          connections, any privileges granted in the
+          <literal>user</literal> table indicate the user's global
+          (superuser) privileges. Any privilege granted in this table
+          applies to <emphasis>all</emphasis> databases on the server.
+        </para>
+
+        <note>
+          <para>
+            Because any global privilege is considered a privilege for
+            all databases, any global privilege enables a user to see
+            all database names with <literal role="stmt">SHOW
+            DATABASES</literal> or by examining the
+            <literal role="is">SCHEMATA</literal> table of
+            <literal>INFORMATION_SCHEMA</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>db</literal> table scope columns determine which
+          users can access which databases from which hosts. The
+          privilege columns determine which operations are allowed. A
+          privilege granted at the database level applies to the
+          database and to all objects in the database, such as tables
+          and stored programs.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>host</literal> table is used in conjunction with
+          the <literal>db</literal> table when you want a given
+          <literal>db</literal> table row to apply to several hosts. For
+          example, if you want a user to be able to use a database from
+          several hosts in your network, leave the
+          <literal>Host</literal> value empty in the user's
+          <literal>db</literal> table row, then populate the
+          <literal>host</literal> table with a row for each of those
+          hosts. This mechanism is described more detail in
+          <xref linkend="request-access"/>.
+        </para>
+
+        <note>
+          <para>
+            The <literal>host</literal> table must be modified directly
+            with statements such as
+            <literal role="stmt">INSERT</literal>,
+            <literal role="stmt">UPDATE</literal>, and
+            <literal role="stmt">DELETE</literal>. It is not affected by
+            statements such as <literal role="stmt">GRANT</literal> and
+            <literal role="stmt">REVOKE</literal> that modify the grant
+            tables indirectly. Most MySQL installations need not use
+            this table at all.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>tables_priv</literal> and
+          <literal>columns_priv</literal> tables are similar to the
+          <literal>db</literal> table, but are more fine-grained: They
+          apply at the table and column levels rather than at the
+          database level. A privilege granted at the table level applies
+          to the table and to all its columns. A privilege granted at
+          the column level applies only to a specific column.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>procs_priv</literal> table applies to stored
+          routines. A privilege granted at the routine level applies
+          only to a single routine.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
       The server uses the <literal>user</literal>,
       <literal>db</literal>, and <literal>host</literal> tables in the
       <literal>mysql</literal> database at both the first and second

@@ -1453,96 +1543,6 @@
     </informaltable>
 
     <para>
-      Briefly, the server uses the grant tables in the following manner:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          The <literal>user</literal> table scope columns determine
-          whether to reject or allow incoming connections. For allowed
-          connections, any privileges granted in the
-          <literal>user</literal> table indicate the user's global
-          (superuser) privileges. Any privilege granted in this table
-          applies to <emphasis>all</emphasis> databases on the server.
-        </para>
-
-        <note>
-          <para>
-            Because any global privilege is considered a privilege for
-            all databases, any global privilege enables a user to see
-            all database names with <literal role="stmt">SHOW
-            DATABASES</literal> or by examining the
-            <literal role="is">SCHEMATA</literal> table of
-            <literal>INFORMATION_SCHEMA</literal>.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>db</literal> table scope columns determine which
-          users can access which databases from which hosts. The
-          privilege columns determine which operations are allowed. A
-          privilege granted at the database level applies to the
-          database and to all objects in the database, such as tables
-          and stored programs.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>host</literal> table is used in conjunction with
-          the <literal>db</literal> table when you want a given
-          <literal>db</literal> table row to apply to several hosts. For
-          example, if you want a user to be able to use a database from
-          several hosts in your network, leave the
-          <literal>Host</literal> value empty in the user's
-          <literal>db</literal> table row, then populate the
-          <literal>host</literal> table with a row for each of those
-          hosts. This mechanism is described more detail in
-          <xref linkend="request-access"/>.
-        </para>
-
-        <note>
-          <para>
-            The <literal>host</literal> table must be modified directly
-            with statements such as
-            <literal role="stmt">INSERT</literal>,
-            <literal role="stmt">UPDATE</literal>, and
-            <literal role="stmt">DELETE</literal>. It is not affected by
-            statements such as <literal role="stmt">GRANT</literal> and
-            <literal role="stmt">REVOKE</literal> that modify the grant
-            tables indirectly. Most MySQL installations need not use
-            this table at all.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>tables_priv</literal> and
-          <literal>columns_priv</literal> tables are similar to the
-          <literal>db</literal> table, but are more fine-grained: They
-          apply at the table and column levels rather than at the
-          database level. A privilege granted at the table level applies
-          to the table and to all its columns. A privilege granted at
-          the column level applies only to a specific column.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>procs_priv</literal> table applies to stored
-          routines. A privilege granted at the routine level applies
-          only to a single routine.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
       Administrative privileges (such as
       <literal role="priv">RELOAD</literal> or
       <literal role="priv">SHUTDOWN</literal>) are specified only in the

@@ -1788,20 +1788,6 @@
 </programlisting>
       </listitem>
 
-      <listitem>
-        <para>
-          With one exception, a blank <literal>Host</literal> value in
-          the grant tables is the same as <literal>'%'</literal>. The
-          exception is that A blank <literal>Host</literal> value in a
-          <literal>db</literal> table row means that its privileges
-          should be combined with those in the row in the
-          <literal>host</literal> table that matches the client host
-          name. The privileges are combined using an AND (intersection)
-          operation, not OR (union). <xref linkend="request-access"/>,
-          discusses use of the <literal>host</literal> table further.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <para>

@@ -1851,8 +1837,12 @@
       <literal role="func">PASSWORD()</literal> function). The encrypted
       password then is used during the connection process when checking
       whether the password is correct. (This is done without the
-      encrypted password ever traveling over the connection.) From
-      MySQL's point of view, the encrypted password is the
+      encrypted password ever traveling over the connection.) See
+      <xref linkend="user-names"/>.
+    </para>
+
+    <para>
+      From MySQL's point of view, the encrypted password is the
       <emphasis>real</emphasis> password, so you should never give
       anyone access to it. In particular, <emphasis>do not give
       non-administrative users read access to tables in the

@@ -1860,16 +1850,6 @@
     </para>
 
     <para>
-      MySQL &current-series; employs the stronger authentication method
-      (first implemented in MySQL 4.1) that has better password
-      protection during the connection process than in earlier versions.
-      It is secure even if TCP/IP packets are sniffed or the
-      <literal>mysql</literal> database is captured.
-      <xref linkend="password-hashing"/>, discusses password encryption
-      further.
-    </para>
-
-    <para>
       The following table shows how various combinations of
       <literal>Host</literal> and <literal>User</literal> values in the
       <literal>user</literal> table apply to incoming connections.

@@ -2198,6 +2178,15 @@
 
       <listitem>
         <para>
+          A blank <literal>User</literal> value in the
+          <literal>db</literal> table matches the anonymous user. A
+          non-blank value matches literally; there are no wildcards in
+          user names.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           The wildcard characters <quote><literal>%</literal></quote>
           and <quote><literal>_</literal></quote> can be used in the
           <literal>Host</literal> and <literal>Db</literal> columns of

@@ -2239,13 +2228,6 @@
         </para>
       </listitem>
 
-      <listitem>
-        <para>
-          A blank <literal>User</literal> value in the
-          <literal>db</literal> table matches the anonymous user.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <indexterm>

@@ -2504,6 +2486,10 @@
 +--------------------+----+-
 </programlisting>
 
+  </section>
+
+  <section id="privilege-changes">
+
     <indexterm>
       <primary>privilege</primary>
       <secondary>changes</secondary>

@@ -2513,26 +2499,6 @@
       <primary>changes to privileges</primary>
     </indexterm>
 
-    <indexterm>
-      <primary>tables</primary>
-      <secondary>grant</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>grant tables</primary>
-    </indexterm>
-
-    <para>
-      Naturally, you should always test your changes to the grant tables
-      (for example, by using <literal role="stmt">SHOW GRANTS</literal>)
-      to make sure that your access privileges are actually set up the
-      way you think they are.
-    </para>
-
-  </section>
-
-  <section id="privilege-changes">
-
     <title>When Privilege Changes Take Effect</title>
 
     <para>


Modified: trunk/refman-5.1/programs-client-core.xml
===================================================================
--- trunk/refman-5.1/programs-client-core.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-5.1/programs-client-core.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 1, Lines Added: 7, Lines Deleted: 0; 823 bytes

@@ -1734,6 +1734,13 @@
       </para>
 
       <para>
+        The <filename>.mysql_history</filename> should be protected with
+        a restrictive access mode because sensitive information might be
+        written to it, such as the text of SQL statements that contain
+        passwords. See <xref linkend="password-security-user"/>.
+      </para>
+
+      <para>
         If you do not want to maintain a history file, first remove
         <filename>.mysql_history</filename> if it exists, and then use
         either of the following techniques:


Modified: trunk/refman-6.0/dba-privilege-system.xml
===================================================================
--- trunk/refman-6.0/dba-privilege-system.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-6.0/dba-privilege-system.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 12, Lines Added: 143, Lines Deleted: 177; 13937 bytes

@@ -53,6 +53,39 @@
   </para>
 
   <para>
+    There are some things that you cannot do with the MySQL privilege
+    system:
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        You cannot explicitly specify that a given user should be denied
+        access. That is, you cannot explicitly match a user and then
+        refuse the connection.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        You cannot specify that a user has privileges to create or drop
+        tables in a database but not to create or drop the database
+        itself.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        A password applies globally to an account. You cannot associate
+        a password with a specific object such as a database, table, or
+        routine.
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
     The user interface to the MySQL privilege system consists of SQL
     statements such as <literal role="stmt">CREATE USER</literal>,
     <literal role="stmt">GRANT</literal>, and

@@ -137,39 +170,6 @@
   </para>
 
   <para>
-    There are some things that you cannot do with the MySQL privilege
-    system:
-  </para>
-
-  <itemizedlist>
-
-    <listitem>
-      <para>
-        You cannot explicitly specify that a given user should be denied
-        access. That is, you cannot explicitly match a user and then
-        refuse the connection.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        You cannot specify that a user has privileges to create or drop
-        tables in a database but not to create or drop the database
-        itself.
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        A password applies globally to an account. You cannot associate
-        a password with a specific object such as a database, table, or
-        routine.
-      </para>
-    </listitem>
-
-  </itemizedlist>
-
-  <para>
     For general security-related advice, see <xref linkend="security"/>.
     For help in diagnosing privilege-related problems, see
     <xref linkend="access-denied"/>.

@@ -902,7 +902,7 @@
 
   <section id="grant-table-structure">
 
-    <title>The Privilege System Grant Tables</title>
+    <title>Privilege System Grant Tables</title>
 
     <indexterm>
       <primary>grant tables</primary>

@@ -971,6 +971,96 @@
     </itemizedlist>
 
     <para>
+      The server uses the grant tables in the following manner:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          The <literal>user</literal> table scope columns determine
+          whether to reject or allow incoming connections. For allowed
+          connections, any privileges granted in the
+          <literal>user</literal> table indicate the user's global
+          (superuser) privileges. Any privilege granted in this table
+          applies to <emphasis>all</emphasis> databases on the server.
+        </para>
+
+        <note>
+          <para>
+            Because any global privilege is considered a privilege for
+            all databases, any global privilege enables a user to see
+            all database names with <literal role="stmt">SHOW
+            DATABASES</literal> or by examining the
+            <literal role="is">SCHEMATA</literal> table of
+            <literal>INFORMATION_SCHEMA</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>db</literal> table scope columns determine which
+          users can access which databases from which hosts. The
+          privilege columns determine which operations are allowed. A
+          privilege granted at the database level applies to the
+          database and to all objects in the database, such as tables
+          and stored programs.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>host</literal> table is used in conjunction with
+          the <literal>db</literal> table when you want a given
+          <literal>db</literal> table row to apply to several hosts. For
+          example, if you want a user to be able to use a database from
+          several hosts in your network, leave the
+          <literal>Host</literal> value empty in the user's
+          <literal>db</literal> table row, then populate the
+          <literal>host</literal> table with a row for each of those
+          hosts. This mechanism is described more detail in
+          <xref linkend="request-access"/>.
+        </para>
+
+        <note>
+          <para>
+            The <literal>host</literal> table must be modified directly
+            with statements such as
+            <literal role="stmt">INSERT</literal>,
+            <literal role="stmt">UPDATE</literal>, and
+            <literal role="stmt">DELETE</literal>. It is not affected by
+            statements such as <literal role="stmt">GRANT</literal> and
+            <literal role="stmt">REVOKE</literal> that modify the grant
+            tables indirectly. Most MySQL installations need not use
+            this table at all.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>tables_priv</literal> and
+          <literal>columns_priv</literal> tables are similar to the
+          <literal>db</literal> table, but are more fine-grained: They
+          apply at the table and column levels rather than at the
+          database level. A privilege granted at the table level applies
+          to the table and to all its columns. A privilege granted at
+          the column level applies only to a specific column.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The <literal>procs_priv</literal> table applies to stored
+          routines. A privilege granted at the routine level applies
+          only to a single routine.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
       The server uses the <literal>user</literal>,
       <literal>db</literal>, and <literal>host</literal> tables in the
       <literal>mysql</literal> database at both the first and second

@@ -1462,96 +1552,6 @@
     </informaltable>
 
     <para>
-      Briefly, the server uses the grant tables in the following manner:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          The <literal>user</literal> table scope columns determine
-          whether to reject or allow incoming connections. For allowed
-          connections, any privileges granted in the
-          <literal>user</literal> table indicate the user's global
-          (superuser) privileges. Any privilege granted in this table
-          applies to <emphasis>all</emphasis> databases on the server.
-        </para>
-
-        <note>
-          <para>
-            Because any global privilege is considered a privilege for
-            all databases, any global privilege enables a user to see
-            all database names with <literal role="stmt">SHOW
-            DATABASES</literal> or by examining the
-            <literal role="is">SCHEMATA</literal> table of
-            <literal>INFORMATION_SCHEMA</literal>.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>db</literal> table scope columns determine which
-          users can access which databases from which hosts. The
-          privilege columns determine which operations are allowed. A
-          privilege granted at the database level applies to the
-          database and to all objects in the database, such as tables
-          and stored programs.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>host</literal> table is used in conjunction with
-          the <literal>db</literal> table when you want a given
-          <literal>db</literal> table row to apply to several hosts. For
-          example, if you want a user to be able to use a database from
-          several hosts in your network, leave the
-          <literal>Host</literal> value empty in the user's
-          <literal>db</literal> table row, then populate the
-          <literal>host</literal> table with a row for each of those
-          hosts. This mechanism is described more detail in
-          <xref linkend="request-access"/>.
-        </para>
-
-        <note>
-          <para>
-            The <literal>host</literal> table must be modified directly
-            with statements such as
-            <literal role="stmt">INSERT</literal>,
-            <literal role="stmt">UPDATE</literal>, and
-            <literal role="stmt">DELETE</literal>. It is not affected by
-            statements such as <literal role="stmt">GRANT</literal> and
-            <literal role="stmt">REVOKE</literal> that modify the grant
-            tables indirectly. Most MySQL installations need not use
-            this table at all.
-          </para>
-        </note>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>tables_priv</literal> and
-          <literal>columns_priv</literal> tables are similar to the
-          <literal>db</literal> table, but are more fine-grained: They
-          apply at the table and column levels rather than at the
-          database level. A privilege granted at the table level applies
-          to the table and to all its columns. A privilege granted at
-          the column level applies only to a specific column.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The <literal>procs_priv</literal> table applies to stored
-          routines. A privilege granted at the routine level applies
-          only to a single routine.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
       Administrative privileges (such as
       <literal role="priv">RELOAD</literal> or
       <literal role="priv">SHUTDOWN</literal>) are specified only in the

@@ -1797,20 +1797,6 @@
 </programlisting>
       </listitem>
 
-      <listitem>
-        <para>
-          With one exception, a blank <literal>Host</literal> value in
-          the grant tables is the same as <literal>'%'</literal>. The
-          exception is that A blank <literal>Host</literal> value in a
-          <literal>db</literal> table row means that its privileges
-          should be combined with those in the row in the
-          <literal>host</literal> table that matches the client host
-          name. The privileges are combined using an AND (intersection)
-          operation, not OR (union). <xref linkend="request-access"/>,
-          discusses use of the <literal>host</literal> table further.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <para>

@@ -1860,8 +1846,12 @@
       <literal role="func">PASSWORD()</literal> function). The encrypted
       password then is used during the connection process when checking
       whether the password is correct. (This is done without the
-      encrypted password ever traveling over the connection.) From
-      MySQL's point of view, the encrypted password is the
+      encrypted password ever traveling over the connection.) See
+      <xref linkend="user-names"/>.
+    </para>
+
+    <para>
+      From MySQL's point of view, the encrypted password is the
       <emphasis>real</emphasis> password, so you should never give
       anyone access to it. In particular, <emphasis>do not give
       non-administrative users read access to tables in the

@@ -1869,16 +1859,6 @@
     </para>
 
     <para>
-      MySQL &current-series; employs the stronger authentication method
-      (first implemented in MySQL 4.1) that has better password
-      protection during the connection process than in earlier versions.
-      It is secure even if TCP/IP packets are sniffed or the
-      <literal>mysql</literal> database is captured.
-      <xref linkend="password-hashing"/>, discusses password encryption
-      further.
-    </para>
-
-    <para>
       The following table shows how various combinations of
       <literal>Host</literal> and <literal>User</literal> values in the
       <literal>user</literal> table apply to incoming connections.

@@ -2207,6 +2187,15 @@
 
       <listitem>
         <para>
+          A blank <literal>User</literal> value in the
+          <literal>db</literal> table matches the anonymous user. A
+          non-blank value matches literally; there are no wildcards in
+          user names.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           The wildcard characters <quote><literal>%</literal></quote>
           and <quote><literal>_</literal></quote> can be used in the
           <literal>Host</literal> and <literal>Db</literal> columns of

@@ -2248,13 +2237,6 @@
         </para>
       </listitem>
 
-      <listitem>
-        <para>
-          A blank <literal>User</literal> value in the
-          <literal>db</literal> table matches the anonymous user.
-        </para>
-      </listitem>
-
     </itemizedlist>
 
     <indexterm>

@@ -2513,6 +2495,10 @@
 +--------------------+----+-
 </programlisting>
 
+  </section>
+
+  <section id="privilege-changes">
+
     <indexterm>
       <primary>privilege</primary>
       <secondary>changes</secondary>

@@ -2522,26 +2508,6 @@
       <primary>changes to privileges</primary>
     </indexterm>
 
-    <indexterm>
-      <primary>tables</primary>
-      <secondary>grant</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>grant tables</primary>
-    </indexterm>
-
-    <para>
-      Naturally, you should always test your changes to the grant tables
-      (for example, by using <literal role="stmt">SHOW GRANTS</literal>)
-      to make sure that your access privileges are actually set up the
-      way you think they are.
-    </para>
-
-  </section>
-
-  <section id="privilege-changes">
-
     <title>When Privilege Changes Take Effect</title>
 
     <para>


Modified: trunk/refman-6.0/programs-client-core.xml
===================================================================
--- trunk/refman-6.0/programs-client-core.xml	2009-03-25 16:42:22 UTC (rev 14366)
+++ trunk/refman-6.0/programs-client-core.xml	2009-03-25 16:42:35 UTC (rev 14367)
Changed blocks: 1, Lines Added: 7, Lines Deleted: 0; 823 bytes

@@ -1738,6 +1738,13 @@
       </para>
 
       <para>
+        The <filename>.mysql_history</filename> should be protected with
+        a restrictive access mode because sensitive information might be
+        written to it, such as the text of SQL statements that contain
+        passwords. See <xref linkend="password-security-user"/>.
+      </para>
+
+      <para>
         If you do not want to maintain a history file, first remove
         <filename>.mysql_history</filename> if it exists, and then use
         either of the following techniques:


Thread
svn commit - mysqldoc@docsrva: r14367 - in trunk: . refman-4.1 refman-5.0 refman-5.1 refman-6.0paul.dubois25 Mar