MySQL(MariaDB)でユーザとデータベースを作成する


 

個人的なサーバですと、1つのMySQLを色々な用途で利用するケースが多いと思います。雑多環境になりがちですよね。そんな時でも、最低限のセキュリティは保ちたいところです。アプリケーションからデータベースを参照するときは、rootアカウントで接続するのではなく、データベース毎にユーザを作成して管理しましょう。下記は、データベースを作成し作成したデータベースに対してのみ権限を持つユーザの作成方法です。

 

下記で3つのユーザ作成方法を紹介します。MySQLは、「ユーザ名+接続元」がセットで一意となります。すべての接続元を許可する場合は、iptables(Firewall)等で必ずアクセス制限をするようにしましょう。

 


#データベースを作成
CREATE DATABASE ★データベース名★ CHARACTER SET utf8;

#ユーザ作成(localhost からのアクセスのみ許可する場合)
GRANT ALL PRIVILEGES ON ★データベース名★.* to ★ユーザ名★@'localhost' IDENTIFIED BY '★パスワード★';

#ユーザ作成(192.168.1.1 からのアクセスのみ許可する場合)
GRANT ALL PRIVILEGES ON ★データベース名★.* to ★ユーザ名★@'192.168.1.1' IDENTIFIED BY '★パスワード★';

#ユーザ作成(すべての接続元からのアクセスを許可する場合(localhostを除く))
GRANT ALL PRIVILEGES ON ★データベース名★.* to ★ユーザ名★@'%' IDENTIFIED BY '★パスワード★';

FLUSH PRIVILEGES ;