MySQL之用户管理

用户管理

主要为了控制权限,让不同开发者,仅能操作属于自己的业务范围内的数据

创建mysql账户

账户中涉及的三个数据

  1. 账户名、密码、ip地址
    • ip是用于限制某个账户只能在哪个机器上登录
------------------------第一种方式---------------------------
# 创建user语法:
create user 用户名@客户端主机地址或网段  identified by 密码
例如:
create user "plf"@"localhost" identified by "123456";
查看创建用户
select user,password,host from mysql.user;

mysql.user表	与用户相关信息
mysql.db表	用户的数据库权限信息
mysql.tables_priv表	用户的表权限
columns_priv 表	用户的字段权限

# 授权用户语法:
grant [权限1,...权限n|all] on *.* to 用户名@客户端主机地址或网段;
例如:
grant all on *.*  to  "plf"@localhost; 
刷新权限
flush privileges;

------------------------第二种方式---------------------------
grant [权限1,...权限n|all] on *.* to 用户名@主机地址 identified by 密码;
刷新权限
flush privileges;






# 测试
都在root权限下查看
create database day42 charset utf8;
use day42;
create table day42.a(id int); 
grant all on day42.* to lt@localhost identified by "123456";
flush privileges;
select user,password,host from mysql.user;
select user,host from mysql.db;
select user,host from mysql.tables_priv;
select user,host from mysql.columns_priv;



# 收回权限
----------------------第1种方式:直接删除用户---------------------
drop user 用户名@主机

----------------------第2种方式:回收权限---------------------
revoke all on *.*  from 用户名@主机名;

# 问题?
如果授权了一个all权限的用户A,然后利用A去创建一个新用户并授权all,能够行的通?
答案是行不通的。
可以通过root用户的如下sql,创建A用户。然后A用户就可以创建其他用户了
grant all on day42.* to lt@localhost identified by "123456" with grant option;
posted @ 2019-07-17 16:16  Hello_Jack  阅读(248)  评论(0)    收藏  举报
# 页脚html代码 /*头部导航栏*/ #navigator { font-size:15px; border-bottom: 1px solid #ededed; border-top: 1px solid #ededed; height: 60px;/*导航栏高度,原始50*/ clear: both; margin-top: 25px; } /*导航栏设置,可以自定义导航栏的目录*/ #navList { min-height: 35px; float: left; } #navList li { /*每一个栏目节点*/ float: left; margin: 0 5px 0 0; /*这里原来是0 40px 0 0 */ } #navList a { /*栏目文字的格式*/ display: block; width: 5em; height: 22px; float: left; text-align: center; padding-top: 19px; }