「MySQL - 権限」の版間の差分
提供: MochiuWiki : SUSE, EC, PCB
ページの作成:「== 概要 == 権限とは、ユーザがデータベースで実行することを許可されるアクションのことである。<br> <br> セキュリティ上の理由から、一般的には、特定のユーザとしてデータを作成して、処理を行うことが望ましいとされている。<br> <br> MySQLのユーザの権限を以下に示す。<br> * All PRIVILEGES *: データベースへのフルアクセス権を持つ。 * SELECT *: デー…」 |
|||
| 53行目: | 53行目: | ||
mysql -u <ユーザ名> -p | mysql -u <ユーザ名> -p | ||
<br> | <br> | ||
権限を確認するユーザ名とホストを確認する。<br> | |||
SELECT user, host FROM mysql.user; | |||
<br> | |||
ユーザが現在持っている全ての権限を表示する。<br> | |||
最初のレコードはユーザ作成時に自動付与された権限であり、2つ目以降のレコードは後から付与した権限である。<br> | |||
SHOW GRANTS FOR <ユーザ名>; | SHOW GRANTS FOR <ユーザ名>; | ||
# または | |||
SHOW GRANTS FOR <ユーザ名>@<ホスト名またはIPアドレス> | |||
<br> | |||
現在ログインしているユーザの権限を確認する。<br> | |||
SHOW GRANTS; | |||
<br><br> | <br><br> | ||
2022年10月15日 (土) 08:30時点における版
概要
権限とは、ユーザがデータベースで実行することを許可されるアクションのことである。
セキュリティ上の理由から、一般的には、特定のユーザとしてデータを作成して、処理を行うことが望ましいとされている。
MySQLのユーザの権限を以下に示す。
- All PRIVILEGES
- データベースへのフルアクセス権を持つ。
- SELECT
- データベースの情報を読み取ることができる。
- UPDATE
- テーブルの行を更新することができる。
- INSERT
- テーブルへのレコードの挿入ができる。
- DELETE
- テーブルからレコードの削除ができる。
- CREATE
- 新規にテーブルやデータベースを作成することができる。
- DROP
- テーブルやデータベース全体を削除することができる。
- GRANT
- 他のユーザの権限を変更することができる。
権限の付与
ユーザにどの程度の権限を付与するかどうかに応じて、以下の権限のうち1つ、または、複数を付与することができる。
MySQLサーバに接続する。
mysql -u <ユーザ名> -p
ユーザに権限を付与するために使用される基本的なシンタックスを示す。
GRANT <権限の種類> ON *.* TO '<ユーザ名>'@'<ホスト名またはIPアドレス>'; GRANT <権限の種類> ON <データベース名>.<テーブル名> TO '<ユーザ名>'@'<ホスト名またはIPアドレス>'; 例. 全てのデータベースおよびテーブルに対して、hogeユーザにInsert権限を付与する場合 GRANT INSERT ON *.* TO 'hoge'@'localhost'; 例. piyoデータベースの全てのテーブルに対して、hogeユーザにInsert権限を付与する場合 GRANT INSERT ON piyo.* TO 'hoge'@'localhost'; 例. piyoデータベースのfugaテーブルに対して、hogeユーザにInsert権限を付与する場合 GRANT INSERT ON piyo.fuga TO 'hoge'@'localhost';
全てのデータベースに対して、ユーザに全ての権限を付与する。
GRANT ALL PRIVILEGES ON *.* TO '<ユーザ名>'@'<ホスト名またはIPアドレス>';
特定のデータベースに対して、ユーザに全ての権限を付与する。
GRANT ALL PRIVILEGES ON <データベース名>.* TO '<ユーザ名>'@'<ホスト名またはIPアドレス>';
権限の確認
MySQLサーバに接続する。
mysql -u <ユーザ名> -p
権限を確認するユーザ名とホストを確認する。
SELECT user, host FROM mysql.user;
ユーザが現在持っている全ての権限を表示する。
最初のレコードはユーザ作成時に自動付与された権限であり、2つ目以降のレコードは後から付与した権限である。
SHOW GRANTS FOR <ユーザ名>; # または SHOW GRANTS FOR <ユーザ名>@<ホスト名またはIPアドレス>
現在ログインしているユーザの権限を確認する。
SHOW GRANTS;
権限の削除
特定のユーザから権限を削除する場合、REVOKEコマンドを使用する。
これは、GRANTコマンドと同様のシンタックスである。
REVOKE <権限の種類> ON *.* TO '<ユーザ名>'@'<ホスト名またはIPアドレス>'; REVOKE <権限の種類> ON <データベース名>.<テーブル名> TO '<ユーザ名>'@'<ホスト名またはIPアドレス>';