私はウェブサイトと 5 つのテーブルを持つ mysql db を持っています。そのうちの 1 つには、約 500 通のユーザー メールが含まれています。私は新機能の開発をアウトソーシングしています。ユーザーの電子メールを含むテーブルへの開発者のアクセスをブロックしたいと考えています。開発者は新しいテーブルを追加する必要があるため、データベース全体にアクセスできますが、ユーザー メール テーブルへのアクセスを停止したいと考えています。
それを行う方法はありますか?
私はウェブサイトと 5 つのテーブルを持つ mysql db を持っています。そのうちの 1 つには、約 500 通のユーザー メールが含まれています。私は新機能の開発をアウトソーシングしています。ユーザーの電子メールを含むテーブルへの開発者のアクセスをブロックしたいと考えています。開発者は新しいテーブルを追加する必要があるため、データベース全体にアクセスできますが、ユーザー メール テーブルへのアクセスを停止したいと考えています。
それを行う方法はありますか?
MySQL には、接続しているユーザーに基づいて一部のテーブルへのアクセス権を制限するGRANT / REVOKEステートメントがあります。
おそらく、DB に新しいユーザーを作成し、REVOKE
そのユーザーに対してロックしたいテーブルに対する不要な権限を作成する必要があります。
MySQL でサポートされている権限の完全なリストは次のとおりです: http://dev.mysql.com/doc/refman/5.0/en/grant.html#grant-privileges
私のアドバイスは、電子メールをloremipsumに置き換えて、アプリケーションを開発環境にコピーすることです. これは、この問題を解決する専門的な (そして唯一信頼できる) 方法です。スケーリングも可能です。
それ以外の場合は、それを乗り越えて、厳密な機密保持契約を結んでいることを確認してください.
REVOKE
そのユーザーに特権を使用http://dev.mysql.com/doc/refman/5.0/en/revoke.html
REVOKE ALL PRIVILEGES ON db.emails FROM 'user'@'host';
ユーザーが一部のテーブルにアクセスすることを制限する方法はないと思いますが、選択コマンドではなく挿入および更新コマンドのみを使用するように制限することはできます
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'password';
GRANT INSERT, UPDATE ON `secure_login`.* TO 'test_user'@'localhost';