10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国高级主任)- 26.8 mb
PDF (A4)- 26.8 mb


6.2.1 MySQLで提供される権限

MySQLでは,さまざまなコンテキストおよびさまざまな動作レベルに適用される権限が提供されます。

  • 管理権限によって,ユ,ザ,はMySQLサ,バ,の動作を管理できます。これらの権限は特定のデ,タベ,スに固有でないため,グロ,バルです。

  • デ,タベ,ス権限は,デ,タベ,スおよびデ,タベ,ス内のすべてのオブジェクトに適用されます。これらの権限は,特定のデータベースに付与したり,すべてのデータベースに適用されるようにグローバルに付与したりすることができます。

  • テーブル,インデックス,ビュー,ストアドルーチンなどのデータベースオブジェクト向けの権限は,データベース内の特定のオブジェクト,データベース内の特定タイプのすべてのオブジェクト(たとえばデータベース内のすべてのテーブル),またはすべてのデータベース内の特定タイプのすべてのオブジェクトにグローバルに付与することができます。

アカウント権限に関する情報は,mysqlデ,タベ,ス内の用户dbtables_privcolumns_priv,およびprocs_privテブルに格納されます(セクション6.2.2“権限システム付与テブル”を参照してください)。MySQLサ,バ,はこれらのテ,ブルの内容を起動時にメモリ,に読み取り,セクション6.2.6“権限変更が有効化される時期”に示す条件でこれらを再ロ,ドします。アクセス制御決定は,付与テブルのンメモリコピに基づきます。

MySQLの一部のリリースでは,新たな権限や機能を追加するために付与テーブルの構造に変更を加えているものもあります。すべての新しい機能を確実に活用できるようにするには、新しいバージョンの MySQL に更新するときに常に付与テーブルを更新して、最新の構造を持つようにします。セクション4.4.7 "mysql_upgrade- MySQLテブルのチェックとアップグレド"を参照してください。

次の表には,格兰特および撤销ステートメント内でSQLレベルで使用される権限名のほか,付与テーブル内の各権限に関連付けられたカラムおよび権限が適用されるコンテキストが示されています。

表6.2 grantおよびrevokeに対して許容可能な権限

権限 カラム コンテキスト
创建 Create_priv デタベス,テブル,またはンデックス
下降 Drop_priv デ,タベ,ス,テ,ブル,またはビュ,
GRANT选项 Grant_priv デ,タベ,ス,テ,ブル,またはストアドル,チン
锁表 Lock_tables_priv デ,タベ,ス
参考文献 References_priv デ,タベ,スまたはテ,ブル
事件 Event_priv デ,タベ,ス
改变 Alter_priv テブル
删除 Delete_priv テブル
指数 Index_priv テブル
插入 Insert_priv テ,ブルまたはカラム
选择 Select_priv テ,ブルまたはカラム
更新 Update_priv テ,ブルまたはカラム
创建临时表 Create_tmp_table_priv テブル
触发 Trigger_priv テブル
创建视图 Create_view_priv ビュ
显示视图 Show_view_priv ビュ
改变日常 Alter_routine_priv ストアドル,チン
创建程序 Create_routine_priv ストアドル,チン
执行 Execute_priv ストアドル,チン
文件 File_priv サバホストでのファルアクセス
创建表空间 Create_tablespace_priv サ,バ,管理
创建用户 Create_user_priv サ,バ,管理
过程 Process_priv サ,バ,管理
代理 proxies_privテ,ブルを参照 サ,バ,管理
重新加载 Reload_priv サ,バ,管理
复制客户端 Repl_client_priv サ,バ,管理
复制的奴隶 Repl_slave_priv サ,バ,管理
显示数据库 Show_db_priv サ,バ,管理
关闭 Shutdown_priv サ,バ,管理
超级 Super_priv サ,バ,管理
所有(特权) サ,バ,管理
使用 サ,バ,管理

次のリストには,MySQLで使用可能な各権限の一般的な説明が提供されています。特定のSQLステトメントには,ここに示されているよりも具体的な権限要件がある場合もあります。そのような場合,該当するステ,トメントの説明で詳細を示します。

  • 所有または所有权限権限指定子は,短縮形です。これは,特定の権限レベルで使用可能なすべての権限GRANT选项を除く)を表します。たとえば,グローバルまたはテーブルレベルで所有を付与すると,すべてのグロ,バル権限またはテ,ブルレベルのすべての権限が付与されます。

  • 改变権限は,テ,ブルの構造を変更するためのALTER TABLEの使用を可能にします。ALTER TABLEには创建および插入権限も必要です。テブルを名前変更するには、古いテーブル側で改变および下降と,新しいテ,ブル側で改变创建,および插入権限が必要です。

  • ストアドル,チン(プロシ,ジャ,および関数)を変更または削除するには,改变日常権限が必要です。

  • 创建権限は,新規デ,タベ,スおよびテ,ブルの作成を可能にします。

  • ストアドル,チン(プロシ,ジャ,および関数)を作成するには,创建程序権限が必要です。

  • テブルスペスおよびログファルグルプを作成,変更,または削除するには,创建表空间権限が必要です。

  • 创建临时表権限は,创建临时表ステ,トメントを使用した一時テ,ブルの作成を可能にします。

    MySQL 5.6.3の時点では,セッションによって一時テーブルが作成されると,サーバーはテーブル上の権限チェックを追加実行しません。セッションの作成によって,删除表插入更新选择などのあらゆる操作をテ,ブル上で実行できます。

    この動作の1つの影響として,現在のユーザーが一時テーブルを作成する権限を持たなくても,セッションが一時テーブルを操作できるということがあります。現在のユ,ザ,が创建临时表権限を持たないが,创建临时表を持定义者コンテキストのストアドプロシ,ジャ,を実行できるとします。プロシ,ジャ,の実行中,セッションは定義側ユ,ザ,の権限を使用します。プロシージャーが復帰したあと,有効な権限は現在のユーザーの権限に戻り,これによって引き続き一時テーブルを表示し,一時テーブルに対してあらゆる操作を実行できることになります。

    MySQL 5.6.3より前では,插入更新选择などの一時テーブル上でのほかの操作には,一時テーブルを格納するデータベースに対する操作について,または同じ名前の非一時テーブルについての追加の権限が必要です。

    一時テーブルと非一時テーブルの権限を分離するための,この状況についての一般的な回避策は,一時テーブルを使用するための専用データベースを作成することです。そうすることで,そのデ,タベ,スに,创建临时表権限と,ユーザーによって実行される一時テーブル操作に必要なほかのすべての権限を,そのユーザーに付与することができます。

  • 创建用户権限は,创建用户减少用户重命名用户,および撤销所有特权の使用を可能にします。

  • 创建视图権限は,创建视图の使用を可能にします。

  • 删除権限は,デ,タベ,スのテ,ブルからの行の削除を可能にします。

  • 下降権限は,既存のデ,タベ,ス,テ,ブル,およびビュ,のドロップを可能にします。パ,ティション化されたテ,ブルで修改表…删除分区ステ,トメントを使用するには下降権限が必要です。下降権限は截断表のためにも必要です。mysqlデ,タベ,スに対する下降権限をユーザーに付与すると,MySQLアクセス権限が格納されているデータベースをユーザーが削除することができます。

  • イベントスケジューラについてのイベントを作成,変更,削除,または表示するには,事件権限が必要です。

  • ストアドル,チン(プロシ,ジャ,および関数)を実行するには,执行権限が必要です。

  • 文件権限は,加载数据文件および选择……到输出文件ステ,トメントとLOAD_FILE ()関数を使用するサーバーホスト上でファイルの読み取りおよび書き込みを実行するための許可をユーザーに与えます。文件権限を持つユーザーは,すべてのユーザーから読み取り可能であるか,MySQLサーバーによって読み取り可能なサーバーホスト上のすべてのファイルを読み取ることができます。(このことは暗黙的に,データベースディレクトリ内のあらゆるファイルにサーバーからアクセスできるため,ユーザーはそれらのすべてのファイルを読み取ることができることを意味します)さらに文件権限によって,ユーザーはMySQLサーバーが書き込みアクセス権限を持つあらゆるディレクトリに新しいファイルを作成できます。これは,権限テブルを実装するファルを格納するサバのデタディレクトリを含みます。セキュリティ対策として,サバは既存のファルを上書きしません。

    ファ电子邮箱ルを読み取りおよび書き込みできる場所を制限するには,secure_file_privシステムを特定のディレクトリに設定します。セクション5.1.4 "サ,バ,システム変数"を参照してください。

  • GRANT选项権限によって,ユーザーは自分自身が所有する権限をほかのユーザーに付与したり,ほかのユーザーから削除したりすることができます。

  • 指数権限によって、ユ、ザ、は、ンデックスを作成またはドロップできます。指数は既存のテ,ブルに適用されます。テ,ブルに対する创建権限を持場合,创建表ステトメントにンデックス定義を含めることも可能です。

  • 插入権限は,デ,タベ,スのテ,ブルへの行の挿入を可能にします。分析表优化表修理表などのテ,ブル保守に関するステ,トメントにも,插入権限が必要です。

  • 锁表権限は,ユ,ザ,が选择権限を持锁表ステ,トメントの使用を可能にします。これには,ロックされたテーブルをほかのセッションから読み取らせないようにする書き込みロックの使用が含まれます。

  • 过程権限は,サーバー内で実行するスレッドについての情報の表示に関係します(つまり,セッションによって実行されるステートメントについての情報)。この権限は,显示PROCESSLISTまたはmysqladmin processlistを使用して,ほかのアカウントに属するスレッドを表示することを可能にし,自分自身のスレッドを表示することもできます。过程権限は,显示引擎の使用も可能にします。

  • 代理権限によって,ユーザーは別のユーザーになりすましたり,別のユーザーとして認識されるようにしたりすることができます。セクション6.3.9 "プロキシユザ"を参照してください。

  • 参考文献権限は現在使用されていません。

  • 重新加载権限は,冲洗ステ,トメントの使用を可能にします。また,これは冲洗操作 (flush hostsflush-logsflush-privilegesflush status刷新表flush-threads刷新,および重新加载)と同等なmysqladminコマンドを使用可能にします。

    重新加载コマンドは,付与テブルをメモリにリロドするようにサバに指示します。flush-privileges重新加载のシノニムです。刷新コマンドは,ログファルを閉じて再オプンし,すべてのテブルをフラッシュします。ほかの冲洗,xxxコマンドは刷新に類似した機能を実行しますが,より具体的であるため一部の状況では好ましい場合があります。たとえば,ログファ刷新よりもflush-logsを選択することをお勧めします。

  • 复制客户端権限は,显示主机状态および显示奴隶状态の使用を可能にします。MySQL 5.6.6以降では,これは显示二进制日志ステ,トメントの使用も可能にします。

  • 复制的奴隶権限は,マスターとしての現在のサーバーに接続するときにスレーブサーバーが使用するアカウントに対して与えるようにしてください。この権限がない場合,スレーブは,マスターサーバー上のデータベースに対して実行された更新をリクエストすることができません。

  • 选择権限によって,ユザはデタベス内のテブルから行を選択できます。选择ステ,トメントで选择権限が必要となるのは,ステ,トメントがテ,ブルから実際にレコ,ドを取得する場合です。一部の选择ステートメントはテーブルにアクセスしないため,あらゆるデータベースへのアクセス権がなくても実行できます。たとえば,テ,ブルを参照しない式を評価するための単純な計算機として选择を使用することができます。

    选择1 + 1;选择π()* 2;

    选择権限は,カラム値を読み取るほかのステ,トメントに,いても必要です。たとえば,更新ステ,トメントの代入col_nameexprの右辺で参照されるカラムや,删除または更新ステ,トメントの在哪里句で指定されるカラムにいて,选择が必要です。

  • 显示数据库権限によって,アカウントは显示数据库ステ,トメントを発行することでデ,タベ,ス名を表示することができます。この権限を持たないアカウントには,アカウントが一部の権限を持つデータベースしか表示されず,サーバーが——skip-show-databaseオプションで起動されている場合はステ,トメントを一切使用できません。すべてのグロ,バル権限は,デ,タベ,スに対する権限だということに注意してください。

  • 显示视图権限は,显示创建视图の使用を可能にします。

  • 关闭権限は,mysqladmin关闭コマンドの使用を可能にします。対応するSQLステトメントはありません。

  • 超级権限によって,アカウントはほかのアカウントに属するスレッドを強制終了するための将master更改为杀了,またはmysqladmin杀死(自分のスレッドは常に強制終了できます),清除二进制日志,グロ,バルシステム変数を変更するための集全球を使用した構成変更,mysqladmin调试コマンド,ロギングの有効化または無効化,read_onlyシステム変数が有効な場合の更新の実行,スレーブサーバー上でのレプリケーションの開始と停止,ストアドプログラムおよびビューの定义者属性内のすべてのアカウントの指定を使用することができ,ユ,ザ,はmax_connectionsシステム変数によって制御される接続制限に達している場合でも(一度)接続することができます。

    バ电子邮箱ナリロギングを有効にした場合にストアドファンクションを作成または変更するとき,セクション20.7 "ストアドプログラムのバナリロギング"に記載されているように超级権限がやはり必要になることがあります。

  • 触发権限はトリガ,操作を有効にします。テ,ブルのトリガーを作成、削除、または実行するには、そのテーブルに対してこの権限を持つ必要があります。

  • 更新権限は,デ,タベ,ス内のテ,ブルの行の更新を可能にします。

  • 使用権限指定子は,権限なしを表します。これは格兰特と一緒にグローバルレベルで使用されて,既存のアカウント権限に影響を及ぼすことなくリソース制限やSSL特性などのアカウント属性を変更します。

アカウントには必要な権限のみを付与することをお勧めします。文件権限と管理権限の付与にいては十分に注意するようにしてください。

  • 文件権限を悪用してMySQLサーバーがサーバーホスト上で読み取ることができるあらゆるファイルをデータベーステーブルから読み取ることができます。これにはすべてのユーザーが読み取り可能なすべてのファイルと,サーバーのデータディレクトリ内のファイルが含まれます。そのあと,选择を使用してそのテブルにアクセスし,テブルの内容をクラアントホストに送信することができます。

  • GRANT选项権限によって,ユ,ザ,はほかのユ,ザ,に権限を付与することができます。異なる権限を持2人のユザがGRANT选项権限を持っていれば,権限を組み合わせることができます。

  • 改变権限を使用して,テ,ブルの名前を変更することによって権限システムを壊すことができます。

  • 关闭権限を悪用して,サーバーを終了することによって,ほかのユーザーへのサービスを完全に妨害することができます。

  • 过程権限は,パスワードの設定や変更を行うステートメントなどを含め,現在実行中のステートメントのプレーンテキストを表示することができます。

  • 超级権限は,ほかのセッションを終了したり,サ,バ,の動作方法を変更したりするために使用できます。

  • mysqlデータベース自体に付与した権限を使用して,パスワードおよびその他のアクセス権限情報を変更することができます。パスワードは暗号化されて保管されているため,悪意のあるユーザーは単純にそのパスワードを見てプレーンテキストパスワードを知ることはできません。ただし,用户テ,ブルの密码カラムへの書き込みアクセス権限を持つユーザーは,アカウントのパスワードを変更し,そのアカウントを使用してMySQLサーバーに接続することができます。