您的位置:首页 > 数据库 > MySQL

mysql创建新用户并分配权限

2016-08-24 09:53 399 查看
在mysql中用户权限是一个很重要的参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考。

1、Mysql下创建新的用户并分配权限
语法:mysql> create user 用户名 identified by '密码';
给用户分配权限
语法:mysql> grant 权限 on 数据库.数据表 to '用户' @ '主机名';

例:
mysql> create user ywliyq identified by '123456';
新创建的用户,默认情况下是没有任何权限的。
给ywliyq分配所有的权限
mysql> grant all on *.* to 'ywliyq'@'%';

增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户ywliyq密码为123456,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限
mysql> grant select,insert,update,delete on *.* to ywliyq@localhost Identified by "123456";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
mysql> grant select,insert,update,delete on *.* to ywliyq@'%' Identified by "123456";

2、如何更精准的控制用户的权限呢?
1.grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:让ywliyq有查询 tmp 数据库 tmp1 表的权限;
grant select on temp.temp1 to 'ywliyq'@'%'; //这个时候ywliyq就具有查询temp下的temp1的权限了。
例如:
1)给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;

2)给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;

3)给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;

4)给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;

3、如何收回权限,一般指有root用户才具有该权限
语法:
1.revoke 权限 on 数据库.数据表 from '用户'@'主机名';
例:收回 ywliyq的所有权限
revoke all on *.* from 'ywliyq'@'%';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 权限