Mysqlユーザ新規作成に方法について - CentOS|Systems Engineer Wiki
Systems Engineer Wiki
訪問者:30,833,200 人目
Mysqlユーザ新規作成に方法について
投稿日:2015-01-19 19:49:54
Mysqlユーザ新規作成に方法について
Mysqlで新規ユーザを作成する方法について解説します。 Mysqlでユーザの新規作成を行うには、GRANT文を利用します。
mysql > GRANT ALL PRIVILEGES ON *.* TO [ユーザ名]@[サーバ] IDENTIFIED BY '[パスワード]' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;
上記設定例は、全データベースに接続できるユーザを作成します。 [ユーザ名]欄には、作成するユーザ名を入力します。 [サーバ]欄には、データベースサーバのIPを入力します。 [パスワード]欄には、データベースユーザのパスワードを入力します。 「FLUSH PRIVILEGES;」は、権限の反映を行う為のSQL文です。 ユーザを作成した場合は、上記設定を行わないと追加された情報が反映されませんので注意して下さい。 次に実際のSQL文を紹介します。
mysql > GRANT ALL PRIVILEGES ON *.* TO example@localhost IDENTIFIED BY 'password' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;
上記は、exampleユーザがデータベースサーバの全てのインスタンスに対して接続できる権限を設定しています。 次に、データベースのインスタンス毎にユーザ設定を行う場合について解説します。
mysql > GRANT ALL PRIVILEGES ON [インスタンス名].* TO [ユーザ名]@[サーバ] IDENTIFIED BY '[パスワード]' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;
上記設定例は、インスタンス毎に接続するユーザを作成します。 この設定により、データベース個別のアクセス権を作成する事が出来ます。 [インスタンス名]欄には、インスタンスを入力します。 [ユーザ名]欄には、作成するユーザ名を入力します。 [サーバ]欄には、データベースサーバのIPを入力します。 [パスワード]欄には、データベースユーザのパスワードを入力します。 「FLUSH PRIVILEGES;」は、権限の反映を行う為のSQL文です。 ユーザを作成した場合は、上記設定を行わないと追加された情報が反映されませんので注意して下さい。 次に実際のSQL文を紹介します。
mysql > GRANT ALL PRIVILEGES ON example.* TO example@localhost IDENTIFIED BY 'password' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;
次に少し特殊になりますが、ユーザ名等にハイフン(−)などを含む場合は、下記のようなにSQL文を作成します。
mysql > GRANT ALL PRIVILEGES ON example.* TO `example-user`@localhost IDENTIFIED BY 'password' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;
上記のようにユーザ名などにハイフン(−)が含まれている場合は、「アクサングラーブ(`)/逆クォート」でユーザ名を囲みSQL文を実行します。
mysql > GRANT ALL PRIVILEGES ON example.* TO example@`*` IDENTIFIED BY 'password' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;
上記のようにサーバ欄をアスタリスク(*)を指定するとサーバのアクセス権を制限せずに接続を行う設定になります。 また逆にサーバのIPを設定すると接続対象のサーバを制限する事をも可能です。
mysql > GRANT ALL PRIVILEGES ON example.* TO example@`192.168.0.100` IDENTIFIED BY 'password' WITH GRANT OPTION; mysql > FLUSH PRIVILEGES;