添加用户
SQL指令如下:
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
例如,要创建在所有主机登录、密码为abc的用户foo,SQL语句如下:
create user 'foo'@'%' identified by 'Xpi7NIq6ArIfhif';
授予用户指定数据库名前缀的数据库的所有权限
SQL指令如下:
GRANT ALL ON `前缀%`.* TO '用户名'@'主机名';
注意,这里的数据库名要用反引号 ` 包裹起来,而不能用引号 " 。
例如,要将数据库名为 haha 开头所有数据库权限,授予 所有主机 登录的用户 foo ,SQL语句如下:
GRANT ALL on `haha%`.* TO 'foo'@'%'
设置用户的最大连接数
如果要设置MySQL数据库用户的最大连接数,不同数据库版本不一样。MySQL5.7及以上版本,可以直接用修改用户信息的方式进行修改,SQL指令如下:
ALTER USER '用户名'@'主机' WITH MAX_USER_CONNECTIONS 连接数
但是,MySQL5.6版本并不支持这个语句。在5.6版本中,是通过 GRANT 指令来设置的,SQL指令如下:
GRANT USAGE ON *.* TO '用户名'@'主机' WITH MAX_USER_CONNECTIONS 连接数;
注意,这里 GRANT 的 priv_type 设置的是 USAGE ,根据MySQL的文档,这个 USAGE 类型的 priv_type 表示什么权限都没有。因此这个语句执行的结果只是单纯的修改了用户的最大连接数。对于用户的既有权限没有任何影响。
如果要取消用户的最大连接数限制,只需要将这里的连接数设置为0即可。
例如,如果要将从 所有主机 登录的 haha 用户的最大连接数限制为 20 ,可以使用如下SQL语句:
ALTER USER 'haha'@'%' WITH MAX_USER_CONNECTIONS 20;
/* 或者 */
GRANT USAGE ON *.* TO 'haha'@'%' WITH MAX_USER_CONNECTIONS 20;