ユーザ権限に関する情報は、mysql
        データベース(mysql
        という名前のデータベース)の
        user、db、host、tables_priv、columns_priv
        の各テーブルに保存されています。MySQL
        サーバは起動時と、項4.4.3. 「権限の変更はいつ反映されるか」
        で説明されている状況下において、これらのテーブルを読み取ります。
      
        以下、このマニュアルで使用されている MySQL
        バージョン 4.0.2
        提供の権限名を、それに関連付けられているテーブルカラム名およびその適用範囲とともに示します。各権限の意味については、項4.4.1. 「GRANT および REVOKE の構文」
        を参照してください。
      
| 権限 | カラム | 適用範囲 | 
| ALTER | Alter_priv | テーブル | 
| DELETE | Delete_priv | テーブル | 
| INDEX | Index_priv | テーブル | 
| INSERT | Insert_priv | テーブル | 
| SELECT | Select_priv | テーブル | 
| UPDATE | Update_priv | テーブル | 
| CREATE | Create_priv | データベース、テーブル、またはインデックス | 
| DROP | Drop_priv | データベースまたはテーブル | 
| GRANT | Grant_priv | データベースまたはテーブル | 
| REFERENCES | References_priv | データベースまたはテーブル | 
| CREATE TEMPORARY TABLES | Create_tmp_table_priv | サーバ管理 | 
| EXECUTE | Execute_priv | サーバ管理 | 
| FILE | File_priv | サーバ上のファイルアクセス | 
| LOCK TABLES | Lock_tables_priv | サーバ管理 | 
| PROCESS | Process_priv | サーバ管理 | 
| RELOAD | Reload_priv | サーバ管理 | 
| REPLICATION CLIENT | Repl_client_priv | サーバ管理 | 
| REPLICATION SLAVE | Repl_slave_priv | サーバ管理 | 
| SHOW DATABASES | Show_db_priv | サーバ管理 | 
| SHUTDOWN | Shutdown_priv | サーバ管理 | 
| SUPER | Super_priv | サーバ管理 | 
        SELECT、INSERT、UPDATE、DELETE
        の各権限は、データベース上の既存テーブルのレコードに対する各操作を許可するものです。
      
        SELECT
        ステートメントは、テーブルからレコードを実際に取り出す場合のみ、SELECT
        権限が必要となります。サーバのデータベースへのアクセス権がなくても実行できる
        SELECT
        ステートメントもあります。たとえば、mysql
        クライアントをシンプルな計算機として使用するような場合です。
      
mysql>SELECT 1+1;mysql>SELECT PI()*2;
        INDEX
        権限では、インデックスを作成または破棄(削除)できます。
      
        ALTER 権限では、ALTER
        TABLE を使用できます。
      
        CREATE および DROP
        権限では、新規データベースおよびテーブルの作成、既存データベースおよびテーブルの破棄(削除)を行えます。
      
        注意: ユーザに mysql
        データベースに対する DROP
        権限を与えると、そのユーザは MySQL
        アクセス権限が保存されているデータベースを破棄できるということになるので注意が必要です。
      
        GRANT
        権限では、ユーザが所有している権限を他のユーザに与えることができます。
      
        FILE 権限では、LOAD DATA
        INFILE および SELECT ... INTO
        OUTFILE
        ステートメントを使用してサーバ上でファイルの読み書きを行えます。この権限を与えられたユーザはだれでも、MySQL
        サーバによってアクセス可能な読み取り可能ファイルをすべて読むことができ、また
        MySQL
        サーバによって書き込めるどのディレクトリにも新規読み取り可能ファイルを作成できます。
        このユーザはまた、カレントデータベースディレクトリ内のすべてのファイルを読むことができます。
        ただし、既存ファイルの変更はできません。
      
        これら以外の権限は、mysqladmin
        プログラムを使用して実行される管理操作用に使用されます。以下の表で、どの管理権限でどの
        mysqladmin
        コマンドを実行できるかを示します。
      
| 権限 | 実行可能なコマンド | 
| RELOAD | reload、refresh、flush-privileges、flush-hosts、flush-logs、flush-tables | 
| SHUTDOWN | shutdown | 
| PROCESS | processlist | 
| SUPER | kill | 
        reload
        コマンドは、権限テーブルを再読み込みするようにサーバに命令します。refresh
        コマンドは、すべてのテーブルをフラッシュし、ログファイルを開いて閉じます。flush-privileges
        は reload のシノニムです。他の
        flush-* コマンドも
        refresh
        と同様の機能を果たしますが、範囲が限られており、状況によって使い分けてください。たとえば、ログファイルだけをフラッシュするには、refresh
        の代わりに flush-logs
        を使用します。
      
        shutdown
        コマンドはサーバをシャットダウンします。
      
        processlist
        コマンドは、サーバで実行中のスレッドに関する情報を表示します。kill
        コマンドはサーバスレッドを強制終了します。ユーザはいつでも自分のスレッドを表示および強制終了することができますが、他のユーザによって開始されたスレッドを表示するには
        PROCESS 権限が、強制終了するには
        SUPER 権限が必要です。 See
        項4.6.7. 「KILL 構文」。
      
一般的な指針として、ユーザにはそのユーザが必要とする権限だけを与えてください。また、以下の権限を与える際には注意が必要です。
            GRANT
            権限は、ユーザが自分の権限を他のユーザに与えることができる。2
            人のユーザが異なる権限を持ち、両方とも
            GRANT
            権限がある場合、お互いの権限を組み合わせることができる。
          
            ALTER
            権限は、テーブルの名前を変更することにより、権限システムを崩壊させることができる。
          
            FILE
            権限を悪用すれば、サーバの読み取り可能ファイルまたはカレントデータベースディレクトリのファイルをデータベーステーブルに読み込んで、SELECT
            を使用してその内容にアクセスできる。
          
            SHUTDOWN
            権限を悪用すれば、サーバを終了して、他のユーザへのサービス妨害を行うことができる。
          
            PROCESS
            権限は、パスワードの設定や変更を行うクエリなども含め、現在実行中のクエリのプレーンテキストを表示することができる。
          
            mysql
            データベースの権限があれば、パスワードおよびその他のアクセス権限情報を変更することができる(パスワードは暗号化されて保存されているため、悪意のあるユーザが単に読み取ってもテキスト形式のパスワードを知ることはできない)。mysql.user
            パスワードカラムにアクセスできれば、それを使用して特定ユーザの
            MySQL
            サーバにログインできる(必要とされる権限を持っていれば、そのユーザはパスワードを書き換えることもできる)。
          
MySQL 権限システムでは達成できないこともいくつかあります。
特定ユーザからのアクセスを拒否するよう明示的に指定できない。 つまり、ユーザを特定して、その接続を拒否することはできない。
データベース内のテーブルの作成および破棄の権限をユーザに与え、それと同時にデータベースの作成および破棄をできないようには指定できない。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

