ユーザーの作成
MySQLコマンドラインツールなどを利用してMySQLサーバに接続し、様々な操作を行うにはユーザーアカウントが必要です。MySQLをインストールした直後には「root」ユーザーしか作成されていません。ここでは新しいユーザーを作成する方法を確認します。
ユーザーを作成するにはCREATE USER文を使います。基本書式は次の通りです。
CREATE USER user; CREATE USER user IDENTIFIED BY [PASSWORD] 'password';
1つ目の構文は指定したユーザーをパスワード無しで作成します。パスワードは後からでも設定できますが、パスワード無しのアカウントはセキュリティ的に問題がありますので2つ目の構文を使ってユーザーの作成時にパスワードを設定するようにして下さい。
2つ目の構文は指定したユーザーを作成しパスワードを設定します。ユーザーの指定方法は後で説明します。パスワードは文字列なのでシングルクオーテーションで囲って指定します。
複数のユーザーをまとめて追加する場合は、次の書式を使用して下さい。
CREATE USER user1 IDENTIFIED BY [PASSWORD] 'password1', user2 IDENTIFIED BY [PASSWORD] 'password2', user3 IDENTIFIED BY [PASSWORD] 'password3', ...;
ユーザーの書式
ユーザーは次の書式で指定します。
user_name@host_name
ユーザーはユーザー名とMySQLへ接続するホスト名の組み合わせで指定します。登録されたユーザー名を持つユーザーが存在しても、そのユーザー名で接続できるのは同時に登録されているホストからしか行えません。また同じユーザー名であっても使用しているホスト毎に異なる権限を設定することもできます。
ユーザー名とホスト名は特別な文字(例えば@など)を含まない限りは引用符で囲う必要はありませんが、特別な文字を含む場合やホスト名にワイルドカードを使用する場合はシングルクオーテーションで囲って指定して下さい。(引用符で囲む場合はユーザー名とホスト名は別々に囲って下さい)。
'user_name'@'host_name'
ホスト名はホスト名の他にIPアドレスやlocalhostを指定することができます。
'username'@'host.example.com'
'username'@'192.168.128.1'
'username'@'localhost'
では実際にユーザーを作成してみます。
mysql> create user
-> 'kuma'@'localhost' identified by 'bear',
-> 'saru'@'192.168.128.1' identified by 'monkey',
-> 'shika'@'host.example.com' identified by 'deer';
3つのユーザーを作成しました。
それではユーザーの一覧を取得してみます。ユーザーの情報は「mysql」データベースの中の「user」テーブルに格納されています。このテーブルにはユーザー毎に1つのデータが作成されており、ユーザー名やホスト名だけではなくパスワードや権限などの情報が格納されています。
今回は「User」カラムと「ホスト」カラムの値を取得します。
mysql> select User,Host from mysql.user;
もともと存在していた「root」ユーザーに加えて追加した3つのユーザーが存在していることが確認できます。
ホスト名のワイルドカード指定
ホスト名にはワイルドカードである'_'と'%'が使用できます。'_'は任意の一文字を表し'%'は任意の長さの文字列に一致します。
例えば同じドメインに所属する任意のホストからアクセス可能なユーザーの指定は次のように記述できます。
'username'@'%.example.com'
同じCクラス(192.168.128.0/24)の全てのホストにからアクセス可能なユーザーの指定は次のように記述できます。
'username'@'192.168.128.%'
またホスト名を省略した場合は次のように記述したものとして扱われます。
'username'@'%'
では実際にユーザーを作成してみます。
mysql> create user
-> 'tora'@'192.168.128.20_' identified by 'tiger',
-> 'kirin'@'%.example.com' identified by 'giraffe',
-> 'kaba' identified by 'hippos';
改めてユーザー情報を取得してみます。
mysql> select User,Host from mysql.user;
ワイルドカードはそのまま格納され、ホスト名を省略した場合は'ユーザー名@%'の形式で格納されていることが確認できます。
作成したユーザーでMySQLサーバへ接続
それではMySQLコマンドラインツールを使い、新しく作成したユーザーでMySQLサーバへ接続してみます。
ローカルホストからアクセスが許可されている「kuma」ユーザーを使って接続します。
問題なく接続できました。
では今度はホスト「192.168.128.1」からアクセスが許可されている「saru」ユーザーを使って接続してみます。
ローカルホストから接続しようとしましたのでユーザーは「'saru'@'localhost'」と認識されます。ユーザーとして追加されているのは「'saru'@'192.168.128.1'」ですのでアクセスが拒否されました。
'DataBase > DataBase Basic' 카테고리의 다른 글
MySQL5.7インストール後にrootでログインする方法 (0) | 2018.09.02 |
---|---|
[mysql]유저삭제 (0) | 2018.08.31 |
yum으로 mysql설치(yum 레포지토리 초기화, yum 레포지토리 추가, mysql인스톨, (0) | 2018.07.19 |
MySQL에 일본어 insert문이 작동되지 않는경우 ; mysql의 언코딩타입 변경하기 (0) | 2018.06.22 |
데이터베이스 구축(데이터베이스작성(스키마작성)→테이블작성 →유저작성 →권한부여) (0) | 2018.06.12 |