在开发工作中,有时候我们需要限制用户访问特定的数据库或表,或限制特定操作,如SELECT、INSERT、UPDATE等操作。在用户创建完成后,就需要对用户进行授权了。同时,为其他用户授权的先决条件是,当前用户具有GRANT权限。
在初始化阶段,可以使用root用户进行授权,也可以先通过root用户创建管理员账户,再使用管理员账户来管理用户。

用法:grant 权限 on db_name.table_name to ‘username’@’ip’;

将只读权限(SELECT)授予给readonly用户

1. 能够访问所有库所有表

  1. grant select on *.* to 'readonly'@'%';

2. 仅能访问部分库的所有表

如授权readonly仅能访问demo_db的所有表,

grant select on demo_db.* to 'readonly'@'%';

*表示数据库中的所有表。

3. 仅能访问指定库的指定表的所有列

如授权readonly仅能访问demo_db的demo_table,

grant select on demo_db.demo_table to 'readonly'@'%';

4. 仅能访问指定库的指定表的部分列

如授权readonly仅能访问demo_db的demo_table的[first_col、second_col]列,

grant select(first_col,second_col) on demo_db.demo_table to 'readonly'@'%';

INSERT权限授予insertonly用户

grant insert on *.* to 'insertonly'@'%';

WRITE权限授予新的user_write用户

grant insert,delete,update on *.* to 'user_write'@'%';