MariaDB入門 - MariaDBをPerlシステム開発で使う

パスワードの設定,データベースとテーブルのアクセス権限の設定 - 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&';