質問:
新しいユーザーにほぼすべての特権を与えながら、1つ以上のテーブル/データベースをそれらから保護するにはどうすればよいですか。
詳細:
データベースが1つある場合、
life
そして3つのテーブル
passwords
friends
hobbies
このユーザーに次の特権を与えるにはどうすればよいですか。
- 入れる
- アップデート
- 消去
- 作成
- 落とす
- ALTER
最初の3つに関しては、次のようなものから始めます。
GRANT INSERT, UPDATE, DELETE ON life.friends TO username@'localhost' IDENTIFIED BY 'password';
GRANT INSERT, UPDATE, DELETE ON life.hobbies TO username@'localhost' IDENTIFIED BY 'password';
しかし、私はどのように使用するかについて混乱していCREATE
ますDROP
。このようにデータベース全体にドロップ権限を付与すると、次のようになります。
GRANT DROP ON life TO username@'localhost' IDENTIFIED BY 'password';
次に、ユーザーはpasswords
テーブルを削除できますが、これは不要です。代わりに、次のようなテーブルに基づいて付与することができます。
GRANT DROP ON life.friends TO username@'localhost' IDENTIFIED BY 'password';
GRANT DROP ON life.hobbies TO username@'localhost' IDENTIFIED BY 'password';
CREATE
しかし、次のような特権を付与するとどうなりますか。
GRANT CREATE ON life TO username@'localhost' IDENTIFIED BY 'password';
つまり、ユーザーは自分が作成したテーブルそのものを削除することさえできないということですか?私の質問は、データベースの作成/削除にも関連しています。ユーザーが自分のデータベースをできるだけ多く作成および削除できるようにしたいが、データベースは許可したくない場合はどうすればよいですlife
か?
passwords
代わりに、テーブルを別のデータベースに移動してアプローチを変更する必要がありますか?
よろしくお願いします。