tset123 发表于 2018-10-1 06:26:51

Mysql(四)-用户授权

  #############################################################################################
  一、数据库管理员密码的设置:
  1、修改数据库管理员本机登录密码(操作系统管理员有权限修改)
  mysqladmin -hlocalhost -uroot -p password "新密码"
  2、恢复数据库管理员密码(操作系统管理员有权限修改)
  #systemctlstopmysqld
  #vim /etc/my.cnf
  
  skip-grant-tables                     //跳过密码验证
  #systemctlstartmysqld
  #mysql
  mysql> updatemysql.user   setauthentication_string=password("新密码") whereuser="root"and host="localhost";
  mysql> flushprivileges;
  mysql> quit;
  #vim /etc/my.cnf
  
  #skip-grant-tables                            //将跳过验证注释
  #systemctlstopmysqld
  #systemctlstartmysqld
  #mysql-uroot-p新密码                   //登陆验证密码是否设置成功
  mysql>
  +++++++++++++++++++++++++++++++++++++++
  二 、用户授权:就在数据库服务器添加新的连接用户。
  用户授权:
  命令:

  mysql>grant   权限列表on库名   to用户名@"客户端地址">  //with grant option 授权的用户具有授权权限。
  权限的表示方式:
  all、 usage、select,update(name,age),delete
  库名的表示方式:
  库名.表名
  库名.
  .*
  用户名:
  自定义
  客户端地址表示方式:
  192.168.4.117                   //表示单个主机
  192.168.2.%               //表示192.168.2.0网段的所有主机
  identified by   "密码"            //登录密码
  withgrant option            //可以有授权权限可选项
  ####################################################################
  权限撤销 :
  命令:
  mysql>   revoke权限列表on库名from用户名@"客户端地址";
  ##################################################################
  删除授权用户:dropuser用户名@"客户端地址";
  ##################################################################
  查看授权用户的权限showgrantsfor用户@”客户端地址“;
  授权信息存储位置:在授权库mysql 下的表里。(不同存储不同的授权信息)
  mysql>usemysql;
  mysql>showtables;
  user   已有授权用户信息select user,host frommysql.user;
  db   授权用户对库的访问权限
  tables_priv记录授权用户对表的访问权限
  columns_priv记录授权用户对表中字段的访问权限。
  ########################################################################
  举例:
  允许在192.168.4.254主机上使用管理员用户连接数据库服务器。

  mysql>grantallon.   toroot@"192.168.4.254" >  允许从网站服务器上使用bbsuser用户连接密码是123456只对bbsdb库下的所有表有完全权限,没有授权权限。

  grantallon   bbsdb.*tobbsuser@"192.168.4.30" >  运行使用admin用户在数据库服务器本机登录 密码123456只有查询表记录的权限。

  grantselecton.   toadmin@"localhost">  mysql>   revoke权限列表on库名from用户名@"客户端地址";
  撤销root在254主机登录的授权权限
  revokegrantoptionon.fromroot@"192.168.4.254";
  撤销root在254主机登录的删除记录和修改记录的权限
  revokedelete,updateon.fromroot@"192.168.4.254";
  撤销root在254主机登录的所有权限
  revokeallon.fromroot@"192.168.4.254";
  #############################################################################
  通过修改表记录的方式撤销用户的权限。
  1 修改在对应表中的记录信息
  2fulsh   privileges;
  ##########################################################################
  授权用户登录服务器后,修登录密码;
  mysql> set   password=password("密码");
  管理员重置授权用户的登录密码
  mysql> set password   for用户@"客户端地址"=password("密码");
  ########################################################################
  客户端测试授权:
  #whichmysql
  #rpm-qmariadb
  #mysql-h数据库服务器的IP地址-u用户名-p密码
  mysql>select@@hostname;
  mysql>selectuser();
  mysql>showgrants;
  ############################################################################
  三、数据备份与恢复(完全备份和完全恢复)
  备份方式:
  1、物理备份: 直接拷贝库或表对应的文件(Myisam)
  cp-r/var/lib/mysql/mysql    /mysql.bak
  tar -zcvf   /mysql.tar.gz    /var/lib/mysql/mysql/*
  cp-r   /mysql.bak/var/lib/mysql/mysql
  chown-Rmysql:mysql   /var/lib/mysql/mysql
  ########################################################
  2、逻辑备份: 执行备份时,根据已有的库和表生成对应sql命令,把生成的sql命令存储到指定的备份文件里。
  备份策略:
  完全备份: 备份所有数据(表 、 库 、 服务器)
  差异备份:备份自完全备份后所有新产生 (备份新产生的数据)
  增量备份:备份自上一次备份后,所有新产生。(备份新产生的数据)
  备份数据库要考虑的问题:
  备份频率   备份时间    备份策略   存储空间   备份文件的命名(一般都以 名.sql 这样的格式)
  备份策略使用方式:
  完全+增量(工作环境中使用较多)
  完全+差异
  执行数据备份的方式:周期性计划任务crond执行 备份脚本
  ########################################################################
  完全备份数据mysqldump
  #mysqldump   -uroot   -pabc123   库名   > 目录名/名.sql
  库名的表示方式:
  --all-databases   备份数据库服务器的所有数据
  库名                        备份一个库里的所有数据
  库表                        备份一个表的所有数据
  -B库名1库名1   库名N      一起备份多个库的所有数据
  #########################################################################
  完全恢复数据
  #mysql-uroot-pabc123   studb< 目录名/名.sql       //studb库应提前创建
  #########################################################################
  备份脚本:
  mkdir/srcriptdir
  vim/srcriptdir/userdbbakall.sh
  #!/bin/bash
  day=date +%F
  if[   ! -e/bakdir];then
  mkdir/bakdir
  fi
  mysqldump-uroot-pabc123userdb> /bakdir/userdb-$day.sql
  :wq
  #chmod +x/srcriptdir/userdbbakall.sh
  #/srcriptdir/userdbbakall.sh
  #ls/bakdir/.sql
  #vim /bakdir/.sql
  #crontab-e
  3023   1   /srcriptdir/userdbbakall.sh&> /dev/null
  :wq

页: [1]
查看完整版本: Mysql(四)-用户授权