【MySQL】権限を追加する場合に必要な
  • facebookページ
  • twitterページ
  • 2019.12.27

    【MySQL】権限を追加する場合に必要な”GRANT”について解説してみる。

    今回の記事ではMySQLで作成したユーザーに何らかの権限を与える方法について解説していきます。

    アカウント毎の権限付与は共同で開発を進める上で重要な要素となりますので、しっかり学習してみましょう。

    権限の付与について

    データベースでroot以外のアカウントを作成する場合には”CREATE USER”を使用しますが、これだけではまだ作成されたアカウントには何の権限もついていません。

    そこでアカウントを作成したら次の作業として、アカウント毎に権限を持たせる必要が有ります。

    この権限付与には次のクエリを使用します。

    上記クエリに記載されている[権限]項目は後述する為、今は省略します。

    形としてはCREATE USERと変わらない式となっているので、そう難しいものではありません。

    では次からはこの[権限]の内容について、もう少し掘り下げて解説します。

    権限について

    先ほど簡単に説明した[権限]の種類について、ここではリスト形式で見ていきます。

    権限について
    ALL
    GRANT OPTION(権限の付与)以外の全てを許可する
    ALTER
    ALTER TABLE(テーブルの変更)の使用を許可する
    ALTER ROUTINE
    ストアドルーチンの変更・削除を許可する
    CREATE
    データベースとテーブルの作成を許可する
    CREATE ROUTINE
    ストアドルーチンの作成を許可する
    CREATE USER
    ユーザの作成・変更・削除を許可する
    DELETE
    DELETE文の使用を許可する
    DROP
    DROP文の使用を許可する
    EVENT
    イベントスケジューラのイベント作成を許可する
    INDEX
    インデックスの作成と削除を許可する
    INSERT
    INSERT文の使用を許可する
    SELECT
    SELECT文の使用を許可する
    SHOW DATABASES
    SHOW DATABASEで全データベースの表示を許可する
    SHUTDOWN
    mysqladmin shutdownの使用を許可する
    TRIGGER
    トリガの作成・削除を許可する
    UPDATE
    UPDATE文の使用を許可する
    USAGE
    「権限なし」を設定する

    これらのコマンドは一部であり、これ以外にも様々なコマンドが存在します。

    またこれらのコマンドは適用される範囲がそれぞれ異なりますので、必要に応じて調べてみましょう。

    権限の与え方について

    では実際にコマンドを使用して権限を付与してみましょう。

    この項目を進めていくにあたり、権限を与えるユーザーアカウントを作成するところから解説します。

    また今回は「ALL」「権限を一つだけ与える方法」「複数権限を同時に与える方法」を解説しますので、ユーザーは3つ用意します。

    それでは早速ですが下のクエリを見てください。

    まずアカウントを3つ作成しました。SELECTで確認すると3つのアカウントが追加されていることが確認できます。

    続いて、この3つのアカウントに上記で書いたようにそれぞれ権限を与えましょう。

    “user_01″には「ALL」を、”user_02″には「SELECTだけ」を、”user_03″には「INSERTとDELETE」を与えてみます。

    このように、複数の権限を与える場合にはカンマで区切ってクエリを実行すると、複数の権限が同時に与えられていることが確認できたと思います。

    なお権限を与える場合、”GRANT”を使用し全てのアカウントに設定を追加したら最後に”FLUSH PRIVILEGES;”で設定を反映させることを忘れないようにしてください。

    権限を削除する

    次は逆に権限の削除について解説していきます。

    まずは下のクエリを見てください。

    権限の削除をする場合には”REVOKE”を使います。

    基本的には権限の追加で使用した”GRANT”と同じですので使い方で悩むことはないと思います。

    こちらも複数の権限を削除する場合にはカンマで区切って指定し、最後に設定の反映を行うために”FLUSH PRIVILEGES;”を実行して終わりです。

    まとめ

    いかがでしたか?

    今回は権限を付与する”GRANT”と権限を削除する”REVOKE”について解説してみました。

    MySQLで使用することが度々あると思いますので、まずは基本的なクエリでもあるこの辺りから学習してMySQLを触りながら慣れていくと良いと思います。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE