「MySQL」参考情報 「第5回MySQLのユーザ作成」+「第6回MySQLのユーザ一覧」として、「ユーザ作成/パスワード設定(CREATE USER)」「権限設定(GRANT)」「ユーザ削除(DROP USER)」「ユーザ一覧表示」「ユーザ権限表示」について紹介。

「MySQL」参考情報 「第5回MySQLのユーザ作成」+「第6回MySQLのユーザ一覧」

「MySQL」参考情報 「第5回MySQLのユーザ作成」+「第6回MySQLのユーザ一覧」として、「ユーザ作成/パスワード設定(CREATE USER)」「権限設定(GRANT)」「ユーザ削除(DROP USER)」「ユーザ一覧表示」「ユーザ権限表示」について紹介。

■関連する比較ページ

「MySQL」参考情報 第5回 MySQLのユーザ作成

■【1】ユーザ作成/パスワード設定(CREATE USER)

MySQLをセットアップした直後は、「root」ユーザしか存在しません。「root」ユーザは、全権限を保持しているため、そのままDB操作を行いミスなどがあると、思わぬ事態になってしまうことがあります。

そのため、必要な操作権限のみを持つユーザを作成して、普段の作業は、そのユーザで行うようにするべきです。

ユーザ作成

ユーザを作成するためには、MySQLプロンプトで「CREATE USER」コマンドを使用します。

サンプルとして、ユーザ「Okita_Souji(沖田総司)」を作成します。

CREATE USER 'Okita_Souji'@'Shinsen_gumi' IDENTIFIED BY 'gintama'

ユーザ名@ドメイン名

『'Okita_Souji'@'Shinsen_gumi'』は、「ユーザ名+@+ドメイン名」を表します。

ドメイン名とは、そのユーザが所属するホスト名(サーバ名)のことです。

このサンプルでは、「Shinsen_gumi(新選組)」ドメインに所属する「Okita_Souji(沖田総司)」という意味になります。

該当するドメインでなければ、ログインできません。

※通常は、ドメイン名に「localhost」を設定します。

パスワード設定

『IDENTIFIED BY 'gintama'』の部分でパスワードを指定します。

ユーザ「Okita_Souji」のパスワードを「gintama(銀魂)」に設定します。

■【2】権限設定(GRANT)

権限が何もないユーザは、何もできません。

作成したユーザ「Okita_Souji」に、「GRANT」コマンドで権限を付与します。

「GRANT」構文

GRANT 権限 ON レベル TO user

権限

権限は「どのようなことができるか」という設定です。

「SELECT」、「INSERT」、「UPDATE」、「DELETE」など、多くの種類があります。

レベル

レベルは「どの範囲でできるのか」という設定です。

5つのレベルがあります

1.グローバルレベル(G)---すべてのデータベース
2.データベース レベル(D)---特定データベース内のすべてのオブジェクト
3.テーブルレベル(T)---特定テーブル内のすべてのカラム
4.カラムレベル(C)---特定テーブルの特定カラム
5.ルーチンレベル---ストアドルーチン

「GRANT」サンプル文

GRANT CREATE,DROP,SELECT,INSERT,UPDATE,DELETE ON ToukenDB TO 'Okita_Souji'@'Shinsen_gumi'

「Shinsen_gumi(新選組)」ドメインに所属するユーザ「Okita_Souji(沖田総司)」に、「ToukenDB(刀剣DB)」データベースに対する「CREATE,DROP,SELECT,INSERT,UPDATE,DELETE」権限を付与しています。

■【3】ユーザ削除(DROP USER)

「DROP USER」構文

DROP USER 'user'@'localhost'

「MySQL」参考情報 第6回 MySQLのユーザ一覧

■【1】ユーザ一覧表示

ユーザは「mysql」データベースの「user」テーブルで管理されています。

このテーブルをSELECTすることでユーザ一覧を参照できます。「user」テーブルに対する「SELECT」権限を持つユーザのみが参照可能です。

参照方法

『mysql> select Host, User, Password from mysql.user』

HostUserPassword
localhostroot*********
Shinsen_gumiOkita_Souji*********
localhost
匿名ユーザ

上記サンプル出力3行目のように、「ユーザ名」が空、「パスワード」設定なし、のようなユーザが存在している場合があります。

MySQLサーバに接続する際には、ユーザ名とパスワードが必要になりますが、MySQLインストール時にデフォルトで「匿名ユーザ」が作成されています。

この「匿名ユーザ」のパスワードは未設定であるため、誰でもログインできてしまう状態になっています。そのため、匿名ユーザのパスワードを設定するか、もしくは、匿名ユーザを削除しておくことが推奨されています。

■【2】ユーザ権限表示

ユーザ権限を表示する方法として「SHOW GRANTS」コマンドを使用します。

構文

SHOW GRANTS FOR ユーザ名@ホスト名

参照方法(1) 「SHOW GRANTS」ユーザ指定

『mysql> SHOW GRANTS FOR Okita_Souji@Shinsen_gumi』

指定したユーザに対して付与されている権限が GRANTステートメントの形で表示されます。

参照方法(2) 「SHOW GRANTS」接続ユーザ

『mysql> SHOW GRANTS』

ユーザ名を省略すると、現在接続しているユーザの権限が表示されます。

参照方法(3) SELECT文サンプル

「mysql」データベースの「db」テーブルに対するSELECT文を発行することでも、権限情報を参照できます。

『mysql> SELECT * FROM mysql.db WHERE user = 'Okita_Souji' AND host = 'Shinsen_gumi' AND db = 'ToukenDB' ¥G』

※SQL文の最後に、メタコマンドである「¥G」オプションを付けると、問い合わせ結果が縦に表示され、見やすくできます。

MySQL最新TOPICS

【講演資料を公開】9/28 ビッグデータ処理のデータベースとして MySQL HeatWave が最適な理由 〜AWS Aurora/Redshift、GCP BigQuery との性能&コスト比較〜(2022年10月28日 09:15)

2022年09月28日(金)16:00~16:55 「ビッグデータ処理のデータベースとして MySQL HeatWave が最適な理由 〜AWS Aurora/Redshift、GCP BigQuery との性能&コスト比較〜」 と題したウェビナーが開催されました。 皆様のご参加、誠にありがとうございました。 当日の資料は以下から無料でご覧いただけます。 ご興味のある企業さま、ぜひご...

イベント情報

セミナー講演資料

無料資料プレゼント

2021/03/04 セキュリティDAYS Keyspider資料

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

ネットワークエンジニアの減少で負担が増える、企業のネットワーク運用管理 〜監視と管理の統合により、さらなる運用効率化を実現〜

【企業ネットワーク向け】ローカルブレイクアウト、適用できないSaaSはありませんか?通信速度や運用に課題はありませんか? 〜LBOに最適なネットワーク機器や管理ツールによる解決策をご提案〜

ハイブリッドワークにおける電話の新しいカタチ ~セールスプロセスを最適化する次世代クラウドビジネスフォン~

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter