MySQL数据库之DBA04 - 多表查询 MySQL管理工具、用户授权及撤销
小标 2018-08-20 来源 : 阅读 1361 评论 0

摘要:本文主要向大家介绍了MySQL数据库之DBA04 - 多表查询 MySQL管理工具、用户授权及撤销 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之DBA04 - 多表查询 MySQL管理工具、用户授权及撤销 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

DBA DAY04
一、多表查询           
    stu_id   name   class   缴费表班级表成绩表就业表1.1 复制表 (作用: 备份表 、 快速建表)
mysql>   create  table  表名  sql查询;create database  db4;use  db4;create  table  user2  select  * from db3.user;show  tables;select  * from user2;create  table  user3  select  name,uid,shell from db3.user  order by  uid  desc limit  5;select  * from user3;select  * from  user  where  shell="abc";create  table  user4   select  * from  db3.user  where  1=2;select  * from user4;desc  user4;1.2  多表查询格式 1   :  select  字段名列表  from 表名列表[  where  条件];use  db4;create table  t1   select  name,uid,shell from db3.user limit 3;select   *  from t1;create  table   t2  select  name,password,uid,homedir from db3.user limit  5;select   *  from t2;笛卡尔集            3 * 5  =  15select  *  from  t1,t2;select  t1.name ,t2.name  from  t1,t2;select  t1.* ,t2.password,t2.homedir   from  t1,t2;select  t1.* ,  t2.password , t2.homedir   from  t1,t2where  t1.uid  =  t2.uid;格式2  嵌套查询: 把内层的查询结果作为外层查询的查询条件select  字段名列表  from  表名  where  条件 (select  字段名列表  from  表名  where  条件);select name   from db3.user order by  uid desc  limit  1;select   avg(uid)  from db3.user;select name,uid  from db3.user where uid<( select   avg(uid)  from db3.user);select  name from db4.t1;select  name  from db3.user where  name in (select  name from db4.t1); 格式3 连接查询左连接查询 : 以左边的表为主显示查询结果select 字段名列表   from   表名A   left  join  表名B  on   条件;右连接查询 : 以右边的表为主显示查询结果select 字段名列表   from   表名A  right  join 表名B  on   条件;create  table   db4.t3  select name,uid,shell  from db3.user  limit 5;select  * from db4.t3;create  table   db4.t4  select name,uid,shell  from db3.user  limit 7;select  * from db4.t4;select  * from   t3  left join  t4 on  t3.uid = t4.uid;select  * from   t3  right join  t4 on  t3.uid = t4.uid;select  t3.name,t4.name from   t3  right join  t4 on  t3.uid = t4.uid;二、MySQL图形管理工具 *192.168.4.50phpMyAdmin-2.11.11-all-languages.tar.gz步骤1 :部署运行环境lamp 或 lnmprpm  -q httpdyum  -y  install  httpdsystemctl   start  httpd  systemctl   enable  httpd  rpm  -q  phprpm  -q  php-mysqlyum  -y  install  php  php-mysqlsystemctl   restart  httpd步骤2 :安装软件phpMyAdmintar  -zxvf  phpMyAdmin-2.11.11-all-languages.tar.gzls  phpMyAdmin-2.11.11-all-languagesmv  phpMyAdmin-2.11.11-all-languages  /var/www/html/phpadmincd  /var/www/html/步骤3 : 创建配置,指定管理数据库服务器。]#cd  phpadmin]#cp config.sample.inc.php    config.inc.php]#vim   config.inc.php:wq步骤4 : 客户端访问打开浏览器输入URL    //192.168.4.50/phpadmin                                   用户 root                                     密码 123456三、用户授权 ** (在数据库服务器上添加 连接时使用的用户名)
用户授权: 在数据库服务器上添加新的连接用户名,默认只有数据库管理员root用户在数据库服务器本机登录有授权权限。默认情况下管理员只能从数据库本机连接服务,在没有其他用户能够连接数据库服务器了。
授权命令格式:]# mysql  -uroot  -p123456mysql>grant    权限列表  on   数据库名  to  用户名@" 客户端地址"   identified   by   "密码"   [ with  grant option];
with  grant option  可选, 让添加的用户连接服务器后,也有授权权限。identified   by   "密码"   新添加的用户连接数据库服务器时,使用的密码
客户端地址  作用:网络中的那些主机可以使用新添加的用户连接数据库服务器。有如下表示方式:
所有主机    %网段  192.168.4.%指定主机   192.168.4.51本机         localhost主机名    pc1.tedu.cn  域名   %.tedu.cn
用户名   客户端主机连接数据库服务器时使用的名字,授权时自定义既可名字要有标识性。
数据库名 : 新添加的连接用户,访问后可以操作的库,表示方式如下:*.*             所有库 所有表库名.*        库下的所有表库名.表明   某张表
权限列表 : 新添加的连接用户,对可以操作的库的访问权限,权限的表示方式如下:
all   所有权限命令,命令  某种权限   (例如  select , insert ,delete) 
授权库 mysql 库记录授权信息,使用不同的表记录不同的授权信息use  mysqluser  记录已经添加的连接用户名db     记录已添加的连接用户对库的访问权限tables_priv  记录已添加的连接用户对表的访问权限columns_priv  记录已添加的连接用户对表字段的访问权限
desc  user;desc db;desc tables_priv;desc    columns_priv;
select  *  from  user\G;select  *  from  db;select  *  from  tables_priv;select  * from  columns_priv;
select user  from mysql.user;select user,host from mysql.user;
查看授权用户的访问权限show grants  for  用户@"客户端地址"; 
show grants  for  root@"localhost";select  * from user where  user="root" and  host="localhost"\G;
授权例子1在50服务器上添加用户adminmysql> grant  select,insert  on  db3.*   to  admin@"192.168.4.%"  identified  by  "123qqq...A";
mysql> select user  from mysql.user where user="admin"; 
在客户端51使用服务新添加的用户连接主机50 验证例子1 授权]# mysql -h192.168.4.50 -uadmin  -p123qqq...Amysql> select @@hostname;    //查看当前主机的主机名
?mysql> select user();                  //查看当前用户的名称和登录的主机
?mysql> show  grants;                 //查看自己拥有的权限
?
mysql> 执行sql命令验证权限
授权例子2在50服务器 授权主机52 可以使用root 连接自己,对所有库表有完全权限且有授权权限 登录密码是123qqq...A
grant  all  on   *.*   to   root@"192.168.4.52"   identified  by  "123qqq...A"   with  grant  option;
在客户端使用服务新添加的用户连接主机50 验证例子2 授权[root@host52 ~]# mysql  -h192.168.4.50  -uroot  -p123qqq...Amysql> select @@hostname;mysql> select user();mysql> show  grants;mysql> 测试对库表的访问权限mysql>  grant  select,update(name,uid)  on  db3.user  to  webuser@"%"  identified by "123qqq...A";  #测试授权权限
在客户端使用有授权权限用户 添加用户连接数据库服务器50]#  mysql  -h192.168.4.50  -uwebuser  -p123qqq...Amysql> show  grants;mysql> 测试访问权限
在50主机上查看授权信息select  user,host from mysql.user;select  * from  mysql.db \G;select  * from  mysql.tables_priv \G;select  * from  mysql.columns_priv \G;
权限撤销 (删除新添加用户的访问权限)MySQL> revoke  权限  on  数据库名   from  用户名@"客户端地址";
select user,host  from mysql.user;show  grants  for  root@"192.168.4.52";
revoke   grant option  on  *.*  from  root@"192.168.4.52";   //本质上还是把user表中的Grant_priv修改为Yshow  grants  for  root@"192.168.4.52";
select  *  from  mysql.user where  user="root" and  host="192.168.4.52"\G;
修改记录的方式 撤销用户的权限mysql> update  mysql.user  set   Delete_priv="N" where  user="root" and  host="192.168.4.52";MySQL>flush  privileges;
select  *  from  mysql.user where  user="root" and  host="192.168.4.52"\G;
revoke  all  on  *.*   from  root@"192.168.4.52";show  grants  for  root@"192.168.4.52";
删除授权用户 (删除添加的连接用户)mysql> drop   user   用户名@"客户端地址";mysql> drop   user   root@"192.168.4.52";
SELECT, INSERT, UPDATE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE 修改密码:授权用户连接数据库服务器后修改连接密码mysql> set  password=password("新密码");   //本质是修改user表中的authentication_string字段
管理员重置授权用户的连接密码mysql> set password for 用户名@"客户端地址"=password("新密码")

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved