MySQLユーザ管理
システムデータベース選択
use mysql
ユーザ一覧確認
SELECT User, Host FROM user
ユーザ権限確認
SHOW GRANTS FOR 'root'@'localhost';
ユーザ追加
localhostから接続許可
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
全ホストから接続許可(%)・ユーザを作成できるユーザ(WITH GRANT OPTION)
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' WITH GRANT OPTION
権限を限定・DBを限定
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON bankaccount.* TO 'custom'@'localhost';
パスワードなし
CREATE USER 'monty'@'%';
ユーザ削除
DROP USER 'jeffrey'@'localhost';
パスワード更新
SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('mypass');
シェルからmysqladminコマンドでパスワード更新
mysqladmin -u user_name -h host_name password "newpwd"
(validate_password プラグインが有効な場合)パスワードポリシー
現在のポリシーの確認
SHOW VARIABLES LIKE 'validate_password%';
ポリシーの変更
SET GLOBAL validate_password_length=4; 最低4文字以上
SET GLOBAL validate_password_policy=MEDIUM; 最低1つの数値、1つの小文字および大文字、1つの特殊文字 (英数字以外) を含む
SET GLOBAL validate_password_policy=MEDIUM; パスワードの長さのみテスト
補足
- 以上はアカウントを作成するためのステートメント (CREATE USER や GRANT など) を利用してユーザ管理する方法だが、INSERT、UPDATE、DELETE などのステートメントを使用して、MySQL 付与テーブルを直接操作して、ユーザ管理することもできる。
参考