ちゃんとカテゴリ分けされておりませんので、
記事をお探しならブログ内検索が便利です。
ご活用くださいませー+.(≧∀≦)゚+.゚
ブログ内検索
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
最新コメント
[11/22 รูปพวงหรีดแสดงความเสียใจ]
[11/22 ดอกไม้ งานศพ]
[11/22 ช่อดอกไม้ตามสั่ง]
[11/22 ร้านดอกไม้บรรยากาศอบอุ่น]
[11/21 Robertret]
最新記事
(08/22)
(02/19)
(01/16)
(12/29)
(12/28)
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
ユーザ作成も最初に実施すると後から頻繁に行うものではないので、すぐに忘れてしまいます。
と言うことでメモです。
■接続ユーザ作成基本構文例
GRANT ALL ON *.* TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■実行できるSQL制限付き構文例
GRANT SELECT , INSERT , UPDATE , DELETE ON *.* TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■接続先DBを指定する場合
GRANT ALL ON [dbname].* TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■接続先DBとテーブルを指定する場合
GRANT ALL ON [dbname].[TableName] TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■ユーザを削除する場合
DROP USER [UserName]@"[HostName]";
■SQL投入後最後にユーザ管理テーブルを更新する
FLUSH PRIVILEGES;
ユーザは接続ホスト単位で作成されます。
そのため、ユーザは接続元ホストの数だけ存在することになります。
1. dbuser1@"localhost"
2. dbuser2@"localhost"
3. dbuser2@"192.168.0.2"
上記は3ユーザ存在していることになる。
ややこしいのはパスワードはユーザ名単位で管理されることです。
またアクセス出来るDBの権限はそれそれで別物になります。
気を付けたいのは、ユーザを削除するとき上記の場合で言えば、
dbuser2を削除するには2構文実施する必要があるのです。
それが面倒な場合はユーザ管理テーブルからどかっと削除してしまう方法もありますが、お勧めしません。
DELETE FROM mysql.user WHERE user='[UserName]' AND host='[HostName]';
FLUSH PRIVILEGES;
また、後から権限を追加する場合は新たにGRANT文を投げます。
変更する場合はユーザ@ホストが一致すれば更新になります。
パスワードに変更がなくても毎回指定しましょう。
忘れると空パスになり、非常に危険です。
ユーザを作成する、という意味ではMySQLではCREATE USER構文もあります。
ですが、権限を意識しないDBの設計はいかなる場合もないでしょうし、ユーザが存在しない場合作成と同意義になるGRANT文で統一するのが良いのではないでしょうか。
というのが私の意見です。
もちろんこの他にも多種多様なオプションが存在しますが、実用的ではないと思っているので記載しません。
と言うことでメモです。
■接続ユーザ作成基本構文例
GRANT ALL ON *.* TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■実行できるSQL制限付き構文例
GRANT SELECT , INSERT , UPDATE , DELETE ON *.* TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■接続先DBを指定する場合
GRANT ALL ON [dbname].* TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■接続先DBとテーブルを指定する場合
GRANT ALL ON [dbname].[TableName] TO [UserName]@"[HostName]" IDENTIFIED BY "[PassWord]";
■ユーザを削除する場合
DROP USER [UserName]@"[HostName]";
■SQL投入後最後にユーザ管理テーブルを更新する
FLUSH PRIVILEGES;
ユーザは接続ホスト単位で作成されます。
そのため、ユーザは接続元ホストの数だけ存在することになります。
1. dbuser1@"localhost"
2. dbuser2@"localhost"
3. dbuser2@"192.168.0.2"
上記は3ユーザ存在していることになる。
ややこしいのはパスワードはユーザ名単位で管理されることです。
またアクセス出来るDBの権限はそれそれで別物になります。
気を付けたいのは、ユーザを削除するとき上記の場合で言えば、
dbuser2を削除するには2構文実施する必要があるのです。
それが面倒な場合はユーザ管理テーブルからどかっと削除してしまう方法もありますが、お勧めしません。
DELETE FROM mysql.user WHERE user='[UserName]' AND host='[HostName]';
FLUSH PRIVILEGES;
また、後から権限を追加する場合は新たにGRANT文を投げます。
変更する場合はユーザ@ホストが一致すれば更新になります。
パスワードに変更がなくても毎回指定しましょう。
忘れると空パスになり、非常に危険です。
ユーザを作成する、という意味ではMySQLではCREATE USER構文もあります。
ですが、権限を意識しないDBの設計はいかなる場合もないでしょうし、ユーザが存在しない場合作成と同意義になるGRANT文で統一するのが良いのではないでしょうか。
というのが私の意見です。
もちろんこの他にも多種多様なオプションが存在しますが、実用的ではないと思っているので記載しません。
PR
この記事にコメントする