三.账号管理
1.创建用户
MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。
1.1 SQL语句创建
CREATE USER <用户> [ IDENTIFIED BY [ PASSWORD ] 'password' ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] 'password' ]]
参数说明:
用户:指定创建用户账号,格式为 user_name'@'host_name。这里的user_name是用户名,host_name为主机名,即用户连接 MySQL 时所用主机的名字。
IDENTIFIED BY子句:用于指定用户密码。新用户可以没有初始密码,若该用户不设密码,可省略此子句。
PASSWORD 'password':PASSWORD 表示使用哈希值设置密码,该参数可选。
示例
CREATE USER 'YU'@'localhost' IDENTIFIED BY 'YU';
1.2 修改密码
SET PASSWORD = PASSWORD ("rootpwd");
2. 查看用户
#切换数据库 use mysql; #查询用户信息 select host,user,authentication_string from user;
注:MySQL 5.7 版本不再使用 Password 来作为密码的字段,而改成了 authentication_string。
host参数说明
host列值 | 含义 |
% | 匹配所有主机 |
localhost | localhost不会被解析成IP地址,直接通过UNIXsocket连接 |
127.0.0.1 | 会通过TCP/IP协议连接,并且只能在本机访问 |
::1 | ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1 |
3. 删除用户
SQL语句删除
DROP USER <用户1> [ , <用户2> ]…
注意:用户的删除不会影响他们之前所创建的表、索引或其他数据库对象,因为 MySQL 并不会记录是谁创建了这些对象。
4.用户授权
SQL语句
GRANT priv_type [(column_list)] ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user[IDENTIFIED BY [PASSWORD] 'password']] ... [WITH with_option [with_option]...]
参数说明:
priv_type 参数表示权限类型;
columns_list 参数表示权限作用于哪些列上,省略该参数时,表示作用于整个表;
database.table 用于指定权限的级别;
user 参数表示用户账户,由用户名和主机名构成,格式是“'username'@'hostname'”;
IDENTIFIED BY 参数用来为用户设置密码;
password 参数是用户的新密码。
WITH 关键字后面带有一个或多个 with_option 参数。这个参数有 5 个选项,详细介绍如下:
GRANT OPTION:被授权的用户可以将这些权限赋予给别的用户;
MAX_QUERIES_PER_HOUR count:设置每个小时可以允许执行 count 次查询;
MAX_UPDATES_PER_HOUR count:设置每个小时可以允许执行 count 次更新;
MAX_CONNECTIONS_PER_HOUR count:设置每小时可以建立 count 个连接;
MAX_USER_CONNECTIONS count:设置单个用户可以同时具有的 count 个连接。
示例
GRANT SELECT,INSERT ON *.* TO 'YU'@'localhost' IDENTIFIED BY '1234' WITH GRANT OPTION;
5.用户撤权
SQL语句
REVOKE priv_type [(column_list)]... ON database.table FROM user [, user]...
REVOKE 语句中的参数与 GRANT 语句的参数意思相同。其中:
priv_type 参数表示权限的类型;
column_list 参数表示权限作用于哪些列上,没有该参数时作用于整个表上;
user 参数由用户名和主机名构成,格式为“username'@'hostname'”。
5.1 取消部分权限
REVOKE INSERT ON *.* FROM 'YU'@'localhost'
5.2取消全部权限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'YU'@'localhost'
6.查看用户权限
SQL语句
SHOW GRANTS FOR 'YU'@'hostname';
图文解释