MySQL 管理者は、MySQL ユーザー アカウントの設定方法、サーバーに接続できるユーザー、接続元、接続後に何ができるかを示す方法を知っておく必要があります。 MySQL 3.22.11 では、この作業を容易にするために 2 つのステートメントが導入され始めました。GRANT ステートメントは MySQL ユーザーを作成してその権限を指定し、REVOKE ステートメントは権限を削除します。 2 つのステートメントは MySQL データベースのフロントエンドとして機能し、これらのテーブルの内容を直接操作する代替手段を提供します。 CREATE ステートメントと REVOKE ステートメントは、次の 4 つのテーブルに影響します。 認可テーブル
コンテンツ
user サーバーに接続できるユーザーと、そのユーザーが持つグローバル権限
db データベースレベルの権限
tables_priv テーブルレベルの権限
columns_priv 列 -レベルの権限
5 番目の権限テーブル (ホスト) もありますが、GRANT と REVOKE の影響を受けません。
ユーザーに GRANT ステートメントを発行すると、ユーザー テーブルにそのユーザーのレコードが作成されます。ステートメントでグローバル権限 (管理権限またはすべてのデータベースに適用される権限) が指定されている場合、これらもユーザー テーブルに記録されます。データベース、テーブル、列レベルの権限を指定すると、それらはそれぞれ db、tables_priv、columns_priv テーブルに記録されます。
GRANT と REVOKE を使用することは、認可テーブルを直接変更するよりも簡単ですが、「MySQL セキュリティ ガイド」を読むことをお勧めします。これらのテーブルは非常に重要であり、管理者は、これらのテーブルが GRANT ステートメントと REVOKE ステートメントの機能レベルをどのように超えているかを理解する必要があります。
次の章では、MySQL ユーザー アカウントを設定して認証する方法を紹介します。権限を取り消し、権限テーブルからユーザーを削除する方法についても説明します。
MySQL ディストリビューションの一部である mysqlAccess スクリプトと mysql_setpermission スクリプトの使用を検討することもできます。これらは、ユーザー アカウントを設定するための GRANT ステートメントの代替手段を提供する Perl スクリプトです。 mysql_setpermission には DBI サポートがインストールされている必要があります。
1. ユーザーを作成して承認します
GRANT ステートメントの構文は次のようになります:
GRANT 権限 (列) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION
このステートメントを使用するには、次のセクションに入力する必要があります:
privileges
ユーザーに付与される権限。次の表に、GRANT ステートメントで使用できる権限指定子を示します。
権限指定子