MySQLの管理

  インストール   DBの管理   Perl API 導入   スクリプトの例

ユーザの追加と削除

ユーザの追加と削除
	ユーザの情報もこのシステム内の"mysql"という名前の
	データベースに保存されている。


テストユーザの削除
mysql> DELETE FROM user WHERE Host='localhost' AND User='';

ユーザの追加	(6.13 Adding New User Privileges to MySQLより)

monthというユーザを追加するには以下のようにする。

% mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
           IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
           IDENTIFIED BY 'パスワード' WITH GRANT OPTION;

mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;

上の場合、montyにはすべての権限が与えられることになる

以下も上と同じことを行う

mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('some_pass'),
                'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('some_pass'),
                'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin',
                 Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
                        VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;

変更

mysql> INSERT INTO user (Host,User,Password)
       VALUES('localhost','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
       VALUES('server.domain','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
       VALUES('whitehouse.gov','custom',PASSWORD('stupid'));
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES
       ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES
       ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;



パスワードの設定
> INSERT INTO user (Host,User,Password)
       VALUES('%','jeffrey',PASSWORD('biscuit'));

以下のようにしてもよい

mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';

あるいは
% mysqladmin -u jeffrey password biscuit

アクセス権限の変更

mysqlで今後管理するために、mysqlというIDにアクセス権限を与え
パスワードをつけておく

% mysql -u root -p
mysql> grant all privileges on *.* to mysql@localhost
identified by 'hoge' with grant option;
mysql> grant all privileges on *.* to mysql@'%'
identified by 'hoge' with grant option;

% mysql -u root -p mysql
(最後の"mysql"は、使用するDBの名前を指定している)


mysql> INSERT INTO user SET Host='localhost',User='platform',
Password=PASSWORD('hogehoge'),Select_priv='Y',Insert_priv='Y',
Update_priv='Y',Delete_priv='Y';
mysql> INSERT INTO user SET Host='%',User='platform',
Password=PASSWORD('hogehoge'),Select_priv='Y',Insert_priv='Y',
Update_priv='Y',Delete_priv='Y';
mysql> FLUSH PRIVILEGES;

select		テーブルからselectできる
insert		テーブルに挿入できる
update		テーブルを更新できる
delete		データを削除できる

mysql> create database platform_db;
mysql> use platform_db;

アクセス権限について
select		テーブルからselectできる
insert		テーブルに挿入できる
update		テーブルを更新できる
delete		データを削除できる
index		インデックスの作成と破棄ができる
alter		alter tableを実行できる
create		データベースやテーブルを作ることができる
drop		データベースやテーブルを破棄できる
grant		他のユーザにアクセス権限を与えることができる
reference	
reload		サーバに設定の再読み込みをさせることができる
shutdown	サーバを停止させることができる
process		サーバのスレッドを見たり、停止させることができる
file		LOAD DATA INFILE や SELECT ... INTO OUTFILE が実行できる
参考になるサイト: http://www.softagency.co.jp/mysql/Manual/

「Perlモジュールの追加」のページへ

FC Labのホームへ Copyright(c) 2001 Takeshi FUJIKI All rights reserved.