1、 创建用户
前置条件:必须拥有globalCREATE USER privilege或者mysql 数据库的INSERT privilege。
语法:
CREATEUSER user_specification
[, user_specification] …
user_specification:
user
[
IDENTIFIED BY [PASSWORD] ‘password’
| IDENTIFIED WITH auth_plugin [AS’auth_string’]
]
例:MariaDB>create user ‘user’@’host’ identified by ‘password’;
其中:
user为用户名。
host为主机。可以使用localhost、ip地址或者hostname,使用’%’表示不限制主机。
‘user’@’host’构成一个唯一用户。
password为密码。
2、 修改用户
前置条件:alteruser语句需要具备修改账号的权限并且对mysql库有insert权限。
语法:
SETPASSWORD [FOR user] =
{
PASSWORD(‘cleartext password’)
| OLD_PASSWORD(‘cleartext password’)
| ‘encrypted password’
}
例:MariaDB>set password for ‘user’@’host’ = PASSWORD(‘password’);
其中:
‘user’@’host’为需要设置密码的用户,不写for user为设置当前用户的密码, PASSWORD及OLD_PASSWORD对后面的明文‘password’进行加密处理,或者直接输入加密后的密码,如’*23AE809DDACAF96AF0FD78ED04B6A265E05AA257’。
3、 删除用户
语法:
DROP USER user [, user] …
例:MariaDB >dropuser ‘user’@’host’;
4、 限制账户资源
对单个账户可以设置的资源限制有
1. 每小时查询次数
2. 每小时更新次数
3. 每小时连接次数
4. 同时在线的连接个数
对应:GRANTOPTION
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
例:MariaDB > GRANT ALL ON *.* TO ‘user’@’host’
IDENTIFIEDBY ‘password’
WITHMAX_QUERIES_PER_HOUR 20
MAX_UPDATES_PER_HOUR 10
MAX_CONNECTIONS_PER_HOUR 5
MAX_USER_CONNECTIONS 2;
当账户的限制非0时则会给资源使用计数。Server运行时给每个账户的使用资源计数,如果达到了连接次数限制则下一个连接将会被拒绝。同样地若达到了查询、修改等次数限制则会产生一个error信息。
每个账户各自进行资源计数而不是针对客户端。可以全局重置当前的每小时使用的资源计数,也可以针对指定的账户重置计数:
1. 将所有账户计数器清零使用FLUSH USER_RESOURCES语句。重新加载权限表语句也会清零计数器(FLUSH PRIVILEGES或mysqladmin reload命令)
2. 给特定账户清零计数器使用GRANT USAGE语句指定一个与原来一样的限制次数
计数器清零对于max_user_connections无效,系统重启会将所有的计数器清零。
5、 用户管理表user
用户信息存储在系统表mysql.user中,可以通过对user表的增删改查来实现对用户的管理。
User表字段及其含义: