mysql用户表

mysql5.6中mysql.user表

一些特殊符号:

在myql中% *是通配符, ::1 是IPv6格式的 127.0.0.1

Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1(相当于root@192.168.1.1)。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限

命令:

CREATE USER 'zhang'@'192.168.1.1' IDENTIFIED BY 'password';

GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:

mysql> GRANT <privileges> ON <what>  
-> TO <user> [IDENTIFIED BY "<password>"]
-> [WITH GRANT OPTION];

其中,with grant option权限传递

< privileges >是一个用逗号分隔赋予的MySQL用户权限的列表。可以指定的权限可以分为三种类型:

数据库/数据表/数据列权限:

Alter: 修改已存在的数据表(例如增加/删除列)和索引。 Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。

全局管理MySQL用户权限:

file: 在MySQL服务器上读写文件。 PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。

特别的权限:

ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。

select database();  
SELECT * from mysql.USER ;  
CREATE USER 'zhang'@'192.168.1.0' IDENTIFIED BY '1234567';#创建用户  
grant insert,update   on *.* to 'zhang'@'192.168.1.0';#单独这句也可以创建用户  
FLUSH PRIVILEGES;#刷新权限  
show grants for 'zhang'@'192.168.1.0' ;  
revoke all on *.* from 'zhang'@'192.168.1.0' ; #撤销 权限  
show grants for 'zhang'@'192.168.1.0' ;  
drop user 'zhang'@'192.168.1.0';  
select * from mysql.user where user='zhang'