パスワードの設定,データベースとテーブルのアクセス権限の設定 - grantコマンド
ユーザーにパスワードとデータベースとテーブルの権限を設定するには、grantコマンドを使用します。
あるユーザーには、すべての権限、あるユーザーには、select権限だけを与えるということができます。ユーザーの作成は事前に行っておきましょう。
また、このデータベースのすべてのテーブルの権限という設定を行うことができます。
grantコマンドの構文です。
grant 権限タイプ on データベース名.テーブル名 to 'ユーザー名'@'ホスト名' identified by 'パスワード';
権限タイプには、alter tableなどを含めてすべての権限を与える「all」、insert権限だけを与える「insert」、update権限だけを与える「update」、delete権限だけを与える「delte」、select権限だけを与える「select」などがあります。
権限タイプは、「,」を使って複数並列して指定できます
データベース名とテーブル名には、すべてという意味のワイルドカード「*」が使えます。
ユーザー名とホスト名とパスワードは文字列です。
ホスト名は、ローカルからのみアクセスする場合は「%」、特定リモートからアクセスする場合は、そのリモートの「ipアドレス」を指定しましょう。ローカルとリモートからのすべてのアクセスを指定する場合は「%」という文字列が使えます。一般的には、アクセス制御を、mariadbの機能ではなく、ファイアーウォールを使って行うので「%」でもよいでしょう。
すべての権限を与える
特定のデータベースのすべてのテーブルにすべての権限を与える。
grant all on mydatabase.* to 'kimotoall'@'%' identified by 'eifjutab&';
アプリケーション用にinsert,update,delete,selectを許可する
特定のデータベースのすべてのテーブルにinsert,update,delete,select権限を与える。
grant insert,update,delete,select on mydatabase.* to 'kimotoapp'@'%' identified by 'eifjutab&';
参照用にselectのみを許可する
特定のデータベースのすべてのテーブルにselect権限を与える。
grant select on mydatabase.* to 'kimotoselect'@'%' identified by 'eifjutab&';