|
MySQL数据库安全配置(18) 192.168.1.1的主机连接数据库 +-----------------------------+--------+--------------------------------+ '192.168.1.% ' 'test' test用户可以从C类子网192.168.1 中的任意主机连接数据库 +-----------------------------+--------+--------------------------------+ '192.168.1.0/255.255.255.0' 'test' 同上 +-----------------------------+--------+--------------------------------+
SQL的字符串通配符%表示匹配任意字符,可以是0个字符,通配符_表示匹配一个字符。
权限列指出在范围列中指定的用户拥有何种权限。该表使用GRANT语句的权限名称。对于绝大多数在user、db和host表中的权限列的名称与GRANT语句中有明显的联系。如Select_priv对应于SELECT权限。
3)授权表使用举例
grant用于给增加用户和创建权限,revoke用于删除用户权限。
下面是一些用grant增加用户和创建权限的例子:
mysql> grant all privileges on *.* to test@localhost identified by 'test' with grant option;
这句增加一个本地具有所有权限的test用户(超级用户),密码是test。ON子句中的*.*意味着"所有数据库、所有表"。with grant option表示它具有grant权限。
mysql> grant select,insert,update,delete,create,drop privileges on test.* to test1@'192.168.1.0/255.255.255.0' identified by 'test';
这句是增加了一个test1用户,口令是test,但是它只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限。 用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。 给用户创建权限还可以通过直接修改授权表:
mysql> insert into user values("localhost","test",password("test"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y"); mysql> flush privileges;
|