1、grant的基本的语法格式为:grant 权限 on 数据库对象 to 用户
grant [-option 操作权限] on [-database 数据库].[-table 表] to [-user 操作用户]@"[操作用户IP]" [-set password]
option 操作权限:
1、select #操作用户仅有选择操作权限
2、insert #操作用户仅有插入数据权限
3、update #操作用户仅有更新数据权限
4、delete #操作用户仅有删除数据权限
5、create #操作用户仅有 执行create权限
6、alter #操作用户仅有 执行alter权限
7、drop #操作用户仅有 执行drop权限
8、references #操作用户仅有 执行外键权限
9、index #操作用户仅有 执行索引权限
10、execute #操作用户仅有 执行存储过程、函数权限
也可以执行多个权限:
grant select, insert, update, delete on testdb.* to common_user@'%'
2、查看数据库权限
2.1 查看当前用户权限
show grants
2.2 查看其他mysql用户权限
show grants for username@dohost
3、辙销用户权限
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;
基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。下面是基本的步骤:
1、登录到mysql中,为root进行远程访问的授权,执行下面的命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> flush privileges;
第一句中"%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";
第二句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。