如何将MySQL用户限制为特定表

ain*_*gel 20 mysql sql grant

如何将MySQL数据库中的user_account限制为特定表.例如:

UserName: RestrictedUser
DatabaseName: db_Payroll 
TableName: 
  tb_Employees
  tb_Users
  tb_Payroll_YYMMDD
  tb_Payroll_Processed
Run Code Online (Sandbox Code Playgroud)

我想限制"RestrictedUser"来tb_Userstb_Employees只及表的其余部分db_Payroll,在今后的使用将创造被授予访问.

kba*_*kba 33

假设用户没有当前权限,您可以执行以下操作

GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Users TO RestrictedUser@'%'
GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Employees TO RestrictedUser@'%'
Run Code Online (Sandbox Code Playgroud)

根据您希望授予用户的确切权限,您可以更改SELECT, INSERT, DELETE为其他权限,例如ALL PRIVILEGES.

之后,请记住刷新权限以使其生效.

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

  • 只有在使用DML直接修改授权表时,才需要在使用`GRANT`或任何其他帐户修改语句后使用`FLUSH PRIVILEGES`.见http://dev.mysql.com/doc/refman/5.5/en/privilege-changes.html (3认同)

dus*_*uff 5

您可以通过运行来授予对各个表的访问权限:

GRANT ALL ON db_Payroll.tb_Users to RestrictedUser@RestrictedHostName;
Run Code Online (Sandbox Code Playgroud)

其他表也是如此.使用操作列表而不是ALL适当的操作.

如果不授予对所有表的访问权限,则无法授予对尚不存在的单个表的访问权限.

  • 因此,决定您的表格将是什么,并授予对相应表格的访问权限.如果您正在考虑涉及在运行时创建表的设计,请停止!不要那样做. (6认同)