web-dev-qa-db-ja.com

MySQLユーザーを特定のテーブルに制限する方法

MySQLデータベースのuser_accountを特定のテーブルに制限するにはどうすればよいですか。例:

UserName: RestrictedUser
DatabaseName: db_Payroll 
TableName: 
  tb_Employees
  tb_Users
  tb_Payroll_YYMMDD
  tb_Payroll_Processed

「RestrictedUser」をtb_Userstb_Employeesのみに制限し、将来の使用のために作成されるdb_Payrollの残りのテーブルにアクセス権を付与します。

20
aintgel

ユーザーが現在の権限を持っていないと仮定すると、次のことができます

GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Users TO RestrictedUser@'%'
GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Employees TO RestrictedUser@'%'

ユーザーに付与したい権限に応じて、SELECT, INSERT, DELETE他の何かに、例えばALL PRIVILEGES

その後、特権が有効になるまでフラッシュすることを忘れないでください。

FLUSH PRIVILEGES;
33
kba

次のコマンドを実行して、個々のテーブルへのアクセスを許可できます。

GRANT ALL ON db_Payroll.tb_Users to RestrictedUser@RestrictedHostName;

他のテーブルについても同様です。必要に応じて、ALLの代わりに操作のリストを使用します。

すべてのテーブルへのアクセスを許可せずに、まだ存在していない個々のテーブルへのアクセスを許可することはできません。

5
duskwuff