Carpe Diem

  Top > スポンサー広告> MySQL > MySQLでのユーザの追加と権限付与  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQLでのユーザの追加と権限付与

2012 - 02/23 [Thu] - 01:15

MySQLでのユーザの追加と、ユーザの権限の付与について。MySQL5.0以上を想定しています。

◆ログイン
初期設定で
ユーザ:root
パスワード:admin


とします。
$ mysql -u root -p
Enter password:admin

◆ユーザの追加
ユーザ追加の書式は以下です。

mysql> CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

usernameとpasswordは任意です。hostnameについてはホスト名、IP、localhost、ワイルドカード「%」が使えます。「%」では任意のマシンからアクセスできます。

例えば
username:testuser
hostname:どのマシンからもアクセス可能に
password:yyyy

となると

mysql> CREATE USER 'testuser'@'%' IDENTIFIED BY 'yyyy';

という書き方になります。

確認は
mysql> SELECT user, host FROM mysql.user;


◆権限の付与

mysql> GRANT [権限] on [DB名].[TABLE名] to [ユーザ名]@[ホスト名];

で作成します。
ただし root のように全てにアクセスできるユーザー権限にしたい場合は with grant option が必要です。

mysql> GRANT ALL ON *.* TO username@hostname WITH GRANT OPTION;

と書きます。付与したら
mysql> FLUSH PRIVILEGES;

でユーザテーブルをリフレッシュします。


確認は
mysql> SHOW GRANTS FOR username@hostname;

権限の削除は
mysql> REVOKE ALL on [DB名].[TABLE名] from [ユーザ名]@[ホスト名];

に則って書きます。


◆パスワードの変更
mysql> SET PASSWORD FOR username@'hostname'=password('変更後のパスワード');

と書きます。変更したら
mysql> FLUSH PRIVILEGES;

をしてサーバに権限テーブルを再読み込みさせます。


◆rootのパスワードを忘れてしまった場合

今のmysqld を停止
$ sudo service mysql stop

GRANTテーブルを読み込まずmysqld起動します
$ sudo mysqld_safe --skip-grant-tables

別ターミナルで mysql にログイン。これはパスワードなしです。
$ mysql -u root

パスワードを変更します。
mysql> UPDATE mysql.user SET PASSWORD=PASSWORD("新パスワード") WHERE user="root";

変更したら先ほどの mysqld_safe を停止し、MySQLを起動します。
$ sudo service mysql start

以降、変更したパスワードでログインできるようになります。



◆ユーザの削除
mysql> DROP USER username@hostname;

もしくはユーザの管理はMySQLデータベースの「user」テーブルで管理を行っているので、
そのテーブルからレコードを消すことでユーザを削除できます。

root ユーザでログインし、以下のように入力します。
mysql> DELETE FROM mysql.user WHERE user='ユーザ名';


◆匿名ユーザの削除

mysql> DELETE FROM mysql.user WHERE user='';
mysql> FLUSH PRIVILEGES;



◆権限一覧
ALL
 …すべての権限を設定出来るユーザを追加
ALTER
 …ALTER TABLE(テーブル変更)の使用を許可
CREATE
 …CREATE TABLE(テーブル作成) の使用を許可
CREATE TEMPORARY TABLES
 …CREATE TEMPORARY TABLE(一時テーブルの作成) の使用を許可
DROP
 …DROP TABLE(テーブルの削除) の使用を許可
INDEX
 …CREATE INDEX(インデックス作成) および DROP INDEX(インデックス削除) の使用を許可
SELECT
 …テーブルの参照権限
INSERT
 …テーブルのレコード挿入権限
UPDATE
 …テーブルのレコード更新権限
DELETE
 …テーブルのレコード削除権限
LOCK TABLES
 …SELECT 権限を持つテーブルで LOCK TABLES(テーブルのロック) の使用を許可
PROCESS
 …SHOW FULL PROCESSLIST の使用を許可
REPLICATION CLIENT
 …スレーブおよびマスタのサーバーを知る権利を付与
REPLICATION SLAVE
 …レプリケーションのスレーブに必要(マスタからバイナリログを読み取るため)
SHOW DATABASES
 …SHOW DATABASES によりすべてのデータベースが表示される
SHUTDOWN
 …mysqladmin shutdown の使用を許可


ソース:
ユーザーの作成
MySQLコマンド一覧(逆引きリファレンス)
MySQL ユーザの操作(作成、パスワード変更、削除)
MySQLユーザの追加

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。