「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

【OSS】オープンソースデータベース利用実態2019年版---多くが複数利用、回答者の59%は「MySQL Communityエディション」を利用(2019年10月08日 10:21)

Open Source Data Management Software Survey オープンソースデータベースサービス提供企業「Percona」は、オープンソースデータベースを使用する人々の使用パターンと意見を収集するために広範な調査を実施した。 調査には85か国から836人が参加した。

  • Zabbixカンファレンス2019
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter