标签:date 用户权限 新建用户 需要 values 主机 test 数据库操作 作用
上一节我们完成了mysql的安装,现在我们将开启实战模式,完成一些基本的mysql操作。这节我们分为一些几个内容:
接下来的几章的内容分布都是按照这个模式进行的----增删改查,这也是数据库的本质。
我们先查看一下mysq.user的表结构(由于属性太多,采用命令select * from mysql.user\G来输出)
可以看到其中有很多参数,select_privilege表达的是查询的权限。
新增加一个用户: insert into mysql.user(Host,User,Password) values("localhost","libo",password("***"));
同样的方式,我们通过命令查看,可以发现新建的用户我们没有任何权限,所有权限属性都是N, 那是不是现在我们没有对数据库操作的任何权限呢?
但是如果我们此时直接使用用新建的用户登陆mysql的话会提示错误:ERROR 1045 (28000): Access denied for user ‘libo‘@‘localhost‘ (using password: YES),这是为什么?因为mysql不支持热启动,我们在新建用户的或者是进行用户权限的操作时,其实mysql并没有察觉到这个变化,所以我们使用flush privileges加载这个权限更改。
但是登陆之后可以发现,我们并没有权限来操作数据库,新建也不行。
localhost权限问题: 如果我们在创建用户时,我们制定的第一个参数是localhost,那么我们就只能在本地进行登陆,远程无法使用该用户进行登陆,如果想要远程登陆,那么我们可以把这个参数改为%。
用户权限问题: 如何给新建的用户授予权限?语法如下:
grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";
实验一下,我们刚才新建的用户libo并没有赋予任何权限,现在我们想要提供一些基本的新增的权限,那么我们可以这样写:
grant create on test.* to libo@localhost identified by "***";
下面我们再测试一下现在能不能新建表了。
现在发现我们具有了新增的权限,但是我们并没有删除的权限。
2. 用户删除操作:
语法:(其实和普通table同样的语法结构)delete fromt mysq.user where User="libo";
3. 用户修改操作:
语法: update mysq.user set Host="%" where User="***";
4. 用户查看操作:
语法: select * from mysql.user where user="***";
标签:date 用户权限 新建用户 需要 values 主机 test 数据库操作 作用
原文地址:http://www.cnblogs.com/liboBlog/p/6071920.html