当前位置:首页 > Mysql教程 > 列表

MySql 5.X创建用户并授权方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-08 11:00:46 浏览: 评论:0 

为什么我要讲是mysql 5呢,因为以前的版本我们可以直接使用INSERT向mysql表中插入mysql用户了,后来后mysql5之后完善了就不可以这么操作了,下面我来介绍MySql 5.X创建用户并授权方法有需要了解的朋友可参考.

在mysql的user表中增加连接用户帐号,这里不要直接使用INSERT语句添加user记录,使用INSERT可能出现:

ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误。不过早期的MYSQL版本笔者倒没出现这个错误,因为天缘一直都是直接修改user表或直接使用INSERT语句完成,后来升级MYSQL到5.1的时候,发现可能会出现这个错误。

具体方法

1.新建用户,代码如下:

  1. //登录MYSQL 
  2. @>mysql -u root -p 
  3. @>密码 
  4. //创建用户 
  5. mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234")); 
  6. //刷新系统权限表 
  7. mysql>flush privileges; 

这样就创建了一个名为:phplamp 密码为:1234  的用户,然后登录一下.

  1. mysql>exit; 
  2. @>mysql -u phplamp -p 
  3. @>输入密码 
  4. mysql>登录成功 

建议使用GRANT语句进行授权,语句如下:

  1. GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; 

上句:“username”替换为将要授权的用户名,比如clientusr;,“password”替换为clientusr设置的密码.

4、可访问数据表授权

创建好帐户之后,就开始给上面的common user进行数据表授权,步骤3中增加的连接用户默认权限都是“N”的,必须在db表中为该帐户授权,允许其访问专用数据库,当然超级用户就不说了.

使用下面语句,代码如下:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON tablename.*  TO 'username'@'localhost' IDENTIFIED BY 'password';

本语句中的权限根据实际需要确定:

"tablename"替换为授权访问的数据表table名

"username"是步骤2授权用户名

"password"是步骤2授权用户的设置密码

这样就为该用户授予了对某数据表的SELECT,INSERT,UPDATE,DELETE,CAREATE,DROP权限.

5、生效授权,创建完毕.

一句话即可:FLUSH PRIVILEGES;

删除用户,代码如下:

  1. @>mysql -u root -p 
  2. @>密码 
  3. mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost"
  4. mysql>flush privileges; 
  5. //删除用户的数据库 
  6. mysql>drop database phplampDB; 
  7. //phpfensi.com

Tags: MySql5 X MySql创建用户

分享到: