#author("2022-06-24T08:13:26+00:00","","") #author("2024-12-05T07:53:29+00:00","","") // 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 ***ユーザ追加 [#sc565914] webdb1というデータベースに接続可能なhogeというユーザ(パスワードはfuga)を追加する mysql> grant all privileges on webdb1.* to hoge identified by 'fuga'; Query OK, 0 rows affected (0.00 sec) このユーザはリモートからも接続可能みたいですね。ただしwebdb1というデータベースのみ。 ***ユーザへ権限追加。 [#t001b2c3] mysql> grant all privileges on webdb1.* to hoge identified by 'hogehoge'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on webdb2.* to hoge identified by 'hogehoge'; Query OK, 0 rows affected (0.00 sec) とやっていけば、複数のデータベース(webdb1,webdb2)にアクセスできるようになる模様。 *** 他のユーザの権限を見る [#j5acda4a] >mysql -u root mysql mysql> use mysql; Database changed mysql> select * from user; +-------------+------+----------+-------------+-------------+--------------+------------+ 〜 | Host | User | Password | Select_priv | Insert_priv | Update_priv | Grant_priv | 〜 +-------------+------+----------+-------------+-------------+--------------+------------+ 〜 | localhost | root | | Y | Y | Y | Y | 〜 | hoge18121 | root | | Y | Y | Y | Y | 〜 | localhost | | | N | N | N | N | 〜 | hoge18121 | | | N | N | N | N | 〜 +-------------+------+----------+-------------+-------------+--------------+------------+ 〜 4 rows in set (0.01 sec) mysql> *** ユーザの情報を見る [#a660c748] 他にも以下のコマンドで権限が参照可能みたいです。 mysql> show grants for hoge; +-----------------------------------------------------------------------------------------------------+ | Grants for hoge@% | +-----------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'hoge'@'%' IDENTIFIED BY PASSWORD 'xxx' | | GRANT ALL PRIVILEGES ON `webdb1`.* TO 'hoge'@'%' | | GRANT ALL PRIVILEGES ON `webdb2`.* TO 'hoge'@'%' | +-----------------------------------------------------------------------------------------------------+ 3 rows in set (0.01 sec) mysql> ***ユーザ情報の削除 [#j316365f] たとえば mysql> show grants for hoge; +-----------------------------------------------------------------------------------------------------+ | Grants for hoge@% | +-----------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'hoge'@'%' IDENTIFIED BY PASSWORD 'xxx' | | GRANT ALL PRIVILEGES ON `webdb1`.* TO 'hoge'@'%' | | GRANT ALL PRIVILEGES ON `webdb2`.* TO 'hoge'@'%' | +-----------------------------------------------------------------------------------------------------+ 3 rows in set (0.01 sec) の場合 revoke all on webdb1.* from hoge; revoke all on webdb2.* from hoge; これで各データベースへの権限情報がなくなりました。あとはユーザの削除です。 mysql> drop user hoge; Query OK, 0 rows affected (0.00 sec) mysql> show grants for hoge; ERROR 1141 (42000): There is no such grant defined for user 'hoge' on host '%' mysql> 以上で削除されました。ところでMySQL5.0で drop user hoge; したら全ての権限情報も削除されました。drop userだけでいいのかなあ?? http://www.javadrive.jp/mysql/user/index6.html ---- この記事は #vote(おもしろかった[11],そうでもない[0]) #vote(おもしろかった[12],そうでもない[0]) #comment #topicp