如何给mysql用户分配权限
在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考.
1,Mysql下创建新的用户
语法:create user 用户名 identified by '密码';
例:create user xiaogang identified by '123456';
新创建的用户,默认情况下是没有任何权限的.
2.如何给用户分配权限
语法:grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:给 xiaogang 分配所有的权限
grant all on *.* to 'xiaogang'@'%';
这个时候 xiaogang 就拥有了所有权限了.
3.如何更精准的控制用户的权限呢?
grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:让 xiaogang 有查询 tmp 数据库 tmp1 表的权限;
grant select on temp.temp1 to 'xiaogang'@'%';//这个时候 xiaogang 就具有查询temp小的temp1的权限了.
例如:mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′; //phpfensi.com
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123.
mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123.
mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
4.如何收回权限,一般指有root用户才具有该权限.
语法:revoke 权限 on 数据库.数据表 from '用户'@'主机名';
例:收回 xiaogang的所有权限
revoke all on *.* from 'xiaogang' @'%';
好了下面我个把步骤总结一下很具体的一个过程.
第一步:mysql服务的启动和停止
net stop mysql
net start mysql
第二步:直接登陆mysql
语法如下:mysql -u用户名 -p用户密码
键入命令mysql -uroot -p,回车后提示你输入密码,输入123456,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP.
第三步:增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限,首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%",如果你不想user1有密码,可以再打一个命令将密码去掉.
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
第四步:操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束.
热门评论