max_connections
int(11) unsigned NOT NULL DEFAULT ‘0’,
max_user_connections
int(11) unsigned NOT NULL DEFAULT ‘0’,
plugin
char(64) COLLATE utf8_bin DEFAULT ‘mysql_native_password’,
authentication_string
text COLLATE utf8_bin,
password_expired
enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
PRIMARY KEY (Host
,User
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=‘Users and global privileges’;
创建用户并授权
grant all privileges on . to ‘user_name’@‘host’ identified by ‘password’ with grant option;
添加权限(和已有权限合并,不会覆盖已有权限)
GRANT Insert ON your database.* TO user@host;
- all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
- on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
- to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:””@”192.168.0.%”,表示test这个用户只能在192.168.0IP段登录
- identified by:指定用户的登录密码
- with grant option:表示允许用户将自己的权限授权给其它用户
可以使用GRANT给用户添加权限,权限会自动追加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。
1、创建用户
进入mysql数据库
use mysql;
创建用户(这个sql创建的用户是没有权限的)
create user ‘user_name’@‘host’ identified by ‘password’;
- user_name:要创建用户的名字。
- host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’
- password:新创建用户的登陆数据库密码,如果没密码可以不写
注意:在 MySQL 里面,用户名 (user)+ 地址 (host) 才表示一个用户
查看用户权限
SHOW GRANTS FOR ‘root’@‘localhost’;
2、权限操作
2.1、分配权限
grant privileges on databasename.tablename to ‘username’@‘host’;
2.2、回收权限:
REVOKE privilege ON databasename.tablename FROM ‘username’@‘host’;
- privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL
- databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 " . ",* 是一个通配符,表示全部。
- username‘@‘host’:表示授权给哪个用户,username 的引号可以不加哦,但 host 必须加。
示例:
create user ‘test’@‘%’ identified by ‘123456’;
grant select,alter,create,delete,insert,update,index on . to ‘test’@‘%’;
flush privileges;
3、刷新配置
#每次修改都需要重新刷新权限
flush privileges;