MySQL,GRANTでユーザーに権限を付与する

スポンサーリンク

鍛錬 920

MySQL,GRANTでユーザーに権限を付与する

GRANT を使用すると、ユーザーに権限を付与することができます。
 
使用方法は、以下に示す通りです。

GRANT 権限 ON データベース名.テーブル名 TO ‘ユーザー名’@’接続元のホスト名’;

例(1)

項目 付与
付与する権限の内容 全て
権限を付与するデータベース 全て
権限を付与するテーブル 全て
GRANT ALL ON *.* TO ‘ユーザー名’@’接続元のホスト名’;

例(2)

項目 付与
付与する権限の内容 SELECT, INSERT
権限を付与するデータベース 全て
権限を付与するテーブル 全て
GRANT SELECT,INSERT ON *.* TO ‘ユーザー名’@’接続元のホスト名’;

例(3)

項目 付与
付与する権限の内容 全て
権限を付与するデータベース testdb
権限を付与するテーブル 全て
GRANT ALL ON testdb.* TO ‘ユーザー名’@’接続元のホスト名’;

例(4)

項目 付与
付与する権限の内容 全て
権限を付与するデータベース testdb
権限を付与するテーブル fruits
GRANT ALL ON testdb.fruits TO ‘ユーザー名’@’接続元のホスト名’;

例(5)

項目 付与
付与する権限の内容 SELECT, INSERT
権限を付与するデータベース testdb
権限を付与するテーブル fruits
GRANT SELECT,INSERT ON testdb.fruits TO ‘ユーザー名’@’接続元のホスト名’;
スポンサーリンク

実行結果

以下は、ユーザー「john (接続元ホスト:localhost)」に権限を付与しています。

権限を付与した後、SHOW GRANTS を使用して権限を確認しています。

関連記事:MySQL,SHOW GRANTSでユーザーの権限を確認する

例(1)

項目 付与
付与する権限の内容 全て
権限を付与するデータベース 全て
権限を付与するテーブル 全て
mysql> 
mysql> GRANT ALL ON *.* TO 'john'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> 
mysql> show grants for 'john'@'localhost';
+---------------------------------------------------+
| Grants for john@localhost                         |
+---------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'john'@'localhost' |
+---------------------------------------------------+
1 row in set (0.00 sec)

例(2)

項目 付与
付与する権限の内容 SELECT, INSERT
権限を付与するデータベース 全て
権限を付与するテーブル 全て
mysql> 
mysql> GRANT SELECT,INSERT ON *.* TO 'john'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> 
mysql> show grants for 'john'@'localhost';
+---------------------------------------------------+
| Grants for john@localhost                         |
+---------------------------------------------------+
| GRANT SELECT, INSERT ON *.* TO 'john'@'localhost' |
+---------------------------------------------------+
1 row in set (0.00 sec)

例(3)

項目 付与
付与する権限の内容 全て
権限を付与するデータベース testdb
権限を付与するテーブル 全て
mysql> 
mysql> GRANT ALL ON testdb.* TO 'john'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> 
mysql> show grants for 'john'@'localhost';
+----------------------------------------------------------+
| Grants for john@localhost                                |
+----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'john'@'localhost'                 |
| GRANT ALL PRIVILEGES ON `testdb`.* TO 'john'@'localhost' |
+----------------------------------------------------------+
2 rows in set (0.00 sec)

例(4)

項目 付与
付与する権限の内容 全て
権限を付与するデータベース testdb
権限を付与するテーブル fruits
mysql> 
mysql> GRANT ALL ON testdb.fruits TO 'john'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> 
mysql> show grants for 'john'@'localhost';
+-----------------------------------------------------------------+
| Grants for john@localhost                                       |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'john'@'localhost'                        |
| GRANT ALL PRIVILEGES ON `testdb`.`fruits` TO 'john'@'localhost' |
+-----------------------------------------------------------------+
2 rows in set (0.00 sec)

例(5)

項目 付与
付与する権限の内容 SELECT, INSERT
権限を付与するデータベース testdb
権限を付与するテーブル fruits
mysql> 
mysql> GRANT SELECT,INSERT ON testdb.fruits TO 'john'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> 
mysql> show grants for 'john'@'localhost';
+-----------------------------------------------------------------+
| Grants for john@localhost                                       |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'john'@'localhost'                        |
| GRANT SELECT, INSERT ON `testdb`.`fruits` TO 'john'@'localhost' |
+-----------------------------------------------------------------+
2 rows in set (0.00 sec)
タイトルとURLをコピーしました