目录
查看用户:select user,host from mysql.user;
查看用户权限:show grants for '[用户名]'@'[使用范围]';
mysql中的用户信息和权限等都存储在一个名为mysql的数据库中。其中主要用到的是user、db、tables_priv、columns_priv、procs_priv这五张表,最重要的是user表。
- user表存储全局权限,适用于一个给定服务器中的所有数据库,在命令中展现形式为*.*;
- db表存储数据库权限,适用于一个给定数据库中的所有表,在命令中展现形式为[数据库名].*;
- tables_priv表存储表权限,适用于一个给定表中的所有列,在命令中展现形式为[数据库名].[表名];
- columns_priv表存储列权限,适用于一个给定表中的单一列,在命令中展现形式为;
CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT权限,适用于已存储的子程序。这些权限可以被授予为全局层级和数据库层级,而且除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在procs_priv表中。
查看用户:select user,host from mysql.user;
mysql> select user,host from mysql.user;
+--------------+------------+
| user | host |
+--------------+------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
+--------------+------------+
2 rows in set (0.00 sec)
查看用户权限:show grants for '[用户名]'@'[使用范围]';
mysql> show grants for 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
创建用户
create user
'[新用户名]'
@
'[作用域]'
identified
by
'[密码]'
;
flush privileges;
//创建完要记得刷新权限表
授权(创建并授权)
grant [权限]
on
[数据库名].[表名] to
'[用户名]'
@
'[作用域]'
identified
by
'[密码]'
;
注:
1、权限为ALL PRIVILEGES或ALL是所有权限,还有单个权限select、update、insert、delete等,单个权限之间用逗号隔开,详细可以查看下mysql.user表的表结构。
例:grant all privileges on [库名] to [用户名];
show grants for [用户名];
2、[数据库名].[表名]为*.*时表示所有数据库。
3、如果不存在identified by '[密码]'时,密码维持原样。
修改密码
alter user
'[用户名]'
@
'[作用域]'
identified
by
'[新密码]'
;
//两个都是修改密码的命令,使用其中一个就好
set
password
for
[用户名]@[作用域]=password(
'[新密码]'
);
撤销用户授权
revoke [权限]
on
[数据库名].[表名]
from
'[用户名]'
@
'[作用域]'
;
删除用户
drop user
'[用户名]'
@
'[作用域]'
;
//建议使用这个<br>delete from mysql.user where user='[用户名]' and host='[作用域]';