ユーザー管理
Password
-- ユーザー xxx が DB ( db_name ) へ接続する際にパスワード認証を必要にする
mysql -u xxx -p db_name
パスワードの初期設定
DESC
インストール初期状態では、管理者用のユーザとして root が用意されている。
パスワードはないため、適切に設定する必要がある。
次のどれかで設定をする
-- PASSWORD() 関数を使用してパスワードを指定
shell> mysql -u root mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('xxx');
mysqladmin.exe を使う
// mysqladmin コマンドを使用しても、パスワードを設定
shell> mysqladmin -u root password xxx
パスワードテーブル( mysql DB の user テーブル )を直接編集する
-- Password も Table にある
shell> mysql -u root -pOldPassword
-- "root" user の password を "xxx" にする
mysql> UPDATE mysql.user SET Password=PASSWORD('xxx') WHERE user='root';
-- 反映するには FLUSH PRIVILEGES でサーバに権限テーブルを再読み込みさせる
mysql> FLUSH PRIVILEGES;
ユーザー 追加
-- 権限テーブルを直接変更する
INSERT INTO user (Host,User,Password) VALUES('localhost','xxx',PASSWORD('yyy') );
FLUSH PRIVILEGES;
-- すべての DB の操作権限をもつ ユーザ (xxx) を パスワード ( yyy ) で追加
GRANT ALL PRIVILEGES ON *.* TO xxx@'%' IDENTIFIED BY 'yyy' WITH GRANT OPTION;
-- user( xxx ) を作成する。
CREATE USER xxx;
-- パスワード( yyy )を指定
CREATE USER xxx IDENTIFIED BY "yyy";
-- user( xxx ) を削除する。
DROP USER xxx;
-- 名前を変更する
RENAME USER xxx TO yyy;
-- パスワードを変更する
SET PASSWORD FOR yyy = PASSWORD( "zzz" );
POINT
操作権限を与えるには GRANT 命令を使うこと。
grant
SYNTAX
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY [PASSWORD] 'password']
[, user_name [IDENTIFIED BY [PASSWORD] 'password'] ...]
[REQUIRE
NONE |
[{SSL| X509}]
[CIPHER cipher [AND]]
[ISSUER issuer [AND]]
[SUBJECT subject]]
[WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR # |
MAX_UPDATES_PER_HOUR # |
MAX_CONNECTIONS_PER_HOUR #]]
DESC
ユーザを作成したり、ユーザーに操作権限の追加、削除をする。
MySQL ユーザ名には最大 16 文字
Unix ユーザ名は通常 8 文字まで
MySQL で認証目的に使用するパスワードは
Unix ユーザ名(ログイン名)や Windows ユーザ名とは関係ない
MySQL クライアントはデフォルトで
現在の Unix ユーザ名を MySQL ユーザ名としてログインしようとするが
これは利便性のためだけのこと
MySQL で認証目的に使用するパスワードは
Unix ユーザ名(ログイン名)や Windows ユーザ名とは関係なく自由に設定できる。
クライアントプログラムで -u || --user により別の名前を指定できる
これは
すべての MySQL ユーザ名にパスワードを設定しないと
データベースを安全に保てないことを意味する
WARNING
パスワードを設定しないと
だれでも任意の名前でサーバへの接続を試みることができ
パスワードのない名前を指定すれば接続できてしまう
-- ユーザー権限をみる
show grants
show grants for root@localhost
-- ユーザー xxx へ全権限を与える
GRANT ALL ON *.* TO xxx
-- SELECT のみを許可する。
GRANT ALL select *.* TO xxx
-- すべての権限をなくす
revoke ALL select *.* FROM xxx
改行コード
改行コード [\r\n] かも
String sTmp = rs[i][j];
// NOTE
// 改行コード == [\r\n] らしい
String sMerge = sTmp.replaceAll( "\r\n", "___" );
// String []aTmp = sTmp.split("\r\n");
// String sMerge = "";
// for( int kk=0; kk<aTmp.length; kk++ ){
// sMerge += aTmp[kk];
// if ( kk < (aTmp.length - 1) ) {
// sMerge += "___";
// }
// }