ほぼ自分専用 MySQL TipS
このエントリで特に言及されていない場合は下記のとおりになります。
MySQL Version 4.0.25
Windows Server 2000
ユーザー = データベースユーザー
mysql> DELETE FROM mysql.user WHERE user = '';// 名前のない ( 匿名 ) ユーザーを削除
mysql> SELECT host,user FROM mysql.user;// 削除ができているか確認
// root の場合
C:\mysql\bin> mysql -u root -pパスワード†1// root 権限で MySQL サーバにログインする
mysql> SELECT current_user();// root でログインできていることを確認
mysql> SET PASSWORD = password('新しいパスワード'); // root のパスワードを変更
mysql> EXIT // ログアウト
C:\mysql\bin> mysql -u root -p新しいパスワード// current_user(); で root でのログインを確認
mysql> SET PASSWORD FOR user_name@localhost = password('新しいパスワード')// 左の様にすることで root は任意のユーザーのパスワードを変更することができる
mysql> GRANT INSERT,SELECT ON *.* TO user_name@localhost IDENTIFIED BY 'password';
句 | 説明 |
---|---|
IDENTIFIED BY 'password' | ユーザーのパスワードを設定 |
REQUIRE | SSL 接続の条件を設定 |
WITH GRANT OPTION | GRANT 文を実行したユーザーの権限と同じ権限を与える |
WITH MAX_QUERIES_PER_HOUR ** | 1時間辺り実行できる SQL の数 **回 |
WITH MAX_UPDATES_PER_HOUR ** | 1時間辺り実行できる UPDATE 文の数 **回 |
WITH MAX_CONNECTIONS_PER_HOUR ** | 1時間辺りサーバーに接続できる回数 **回 |
権限名 | 内容 | 説明、備考 |
---|---|---|
ALL | WITH GRANT OPTION 以外全ての権限 | |
ALTER | ALTER TABLE 文の実行 | テーブルの定義を変更する |
CREATE | CREATE DATABASE, CREATE TABLE 文の実行 | データベースやテーブルを作成する |
CREATE TEMPORARY TABLES | CREATE TEMPORARY TABLE 文の実行 | テンポラリテーブルを作成する |
DELETE | DELETE 文の実行 | データの削除 |
DROP | DROP DATABASE, DROP TABLE 文の実行 | データベースやテーブルの削除 |
INDEX | CREATE INDEX, DROP INDEX 文の実行 | インデックスの作成、削除 |
INSERT | INSERT 文の実行 | データの挿入 |
RELOAD | FLUSH 文の実行 | サーバ各種ステータス、ログのリセット |
REPLICATION CLIENT | レプリケーションのスレーブおよびマスタのサーバーの情報を知る権限 | |
REPLICATION SLAVE | レプリケーションのマスタからバイナリログを読み取るための権限 ( スレーブに必要 ) | |
SELECT | SELECT 文の実行 | データの検索 |
SHOW DATABASES | SHOW DATABASES 文の実行 | データベースの一覧表示 |
SHUTDOWN | MySQL サーバーの停止権限 | |
UPDATE | UPDATE 文の実行 | データの更新 |
GRANT OPTION | WITH GRANT OPTION と同意 | テーブル単位での設定 |
user_name@localhost | ローカル接続 | ホストのドメイン名もしくはIPアドレスが使用でき、ワイルドカード「 % 」( 任意の文字 )と「 _ 」( 任意の1文字 )を利用することでホストをネットワークごとに管理することが可能。 |
例) | user_name@'192.168.1.%' user_name@'sv_.anywhere.net' |
// よく使うであろう GRANT 文リスト既存のユーザーに GRANT を実行すると権限の追加ができるよ。
mysql> GRANT INSERT,SELECT,SHOW DATABASES ON db_name.* TO user_name@localhost IDENTIFIED BY 'password'; // ローカル接続で INSERT と SELECT と SHOW DATABASES が実行できるユーザー mysql> GRANT ALL ON db_name.* TO user_name@localhost IDENTIFIED BY 'password'; // ローカル接続で WITH GRANT OPTION 以外全てのコマンドを実行できるユーザー
mysql> REVOKE ALL ON *.* FROM user_name@localhost;// ユーザー user_name の全ての権限を取り上げる
mysql> DELETE FROM mysql.user WHERE user = 'user_name';// ホストで選択する場合は AND host = 'remote_host' を付け加えること
mysql> FLUSH PRIVILEGES;// メモリ上のキャッシュも更新
mysql> SELECT host,user FROM mysql.user;// 削除ができているか確認
このエントリーのトラックバックURL:
http://o29.s1.xrea.com/spais/mt-tb.cgi/14