1 数据库(终):数据库管理员(数据可的备份与、DCL_管理用户) ...

打印 上一主题 下一主题

主题 1075|帖子 1075|积分 3229

提示:文章写完后,目录可以自动生成,怎样生成可参考右边的帮助文档
  
  

前言

一、数据库的备份与还原

1 使用命令行



  • 命分行:

    • 语法

      • 备份: mysqldump -u用户名 -p密码 数据库名 > 生存的路径(.sql文件)
      • 还原:
        1.登录数据库
        2.创建数据库
        3.使用数据库
        4.实验文件 source 文件路径


备份:

看一下备份的.sql里面有什么?

可以看到里面的其实就是将数据库里面的表重新创建并插入数据。
所以这种恢复数据库的方式,需要我们重新创建数据库才行
恢复:

这样就恢复了。
2 使用图形化工具



  • 图形化工具:
    这个就比力简朴了,但是恢复同样要先创建数据库
    备份:


恢复:
同样要先将数据库创建出来


二、DCL 管理用户、授权

DBA:数据库管理员
1 管理用户

(1)查询用户

查询用户:MySQL的用户在mysql数据库下的user表中,我们直接查询这张表就可以了


  • 1 切换到mysql数据库
    USE myql;
  • 2 查询user表
    SELECT * FROM USER;
  1. -- 1 切换到mysql数据库
  2. use mysql;
  3. -- 2 查询user表
  4. select * from user;
复制代码

解释:
(1)此中root就是我们的根用户,Host指定的是允许登录的主机ip,假如是%就表明运行在任意ip登录
(2)别的三个账号是就不用管了,原来就有的。
(3)在表中用户password是加密的,所以我们看不到
(2)创建用户

我们不能直接往user表中insert数据,应该使用专门的创建用户语法


  • 语法: CREATE USER ‘用户名’@‘地址’ IDENTIFIED BY ‘密码’;
  1. -- 创建一个zhangsan用户,密码111111
  2. create user 'zhangsan'@'localhost' identified by '111111';
  3. -- 创建一个lisi用户,密码123
  4. create user 'lisi'@'%' identified by '123';  -- 其中统配符 % 表示可以在任意ip主机上使用这个账户登录
  5. -- 2 查询user表
  6. select * from user;
复制代码

cmd中也能用lisi用户登录:

(3)删除用户



  • 语法:DROP USER ‘用户名’@‘主机名’;
  1. -- 删除'zhangsan'@'localhost'用户
  2. drop user 'zhangsan'@'localhost';
  3. -- 删除'lisi'@'%'用户
  4. drop user 'lisi'@'%';
复制代码
(4)修改用户密码



  • 语法: ALTER USER ‘username’@‘host’ IDENTIFIED BY ‘new_password’;
    根据mysql版本不同,这个语法也有些不同
    当然,这个连root用户密码都可以这样修改
  1. -- 修改 'lisi'@'%' 用户的密码为666666
  2. ALTER USER 'lisi'@'%' IDENTIFIED BY '666666';
复制代码

(5)mysql中忘记了root用户密码怎么办?

这个就有点贫困了,这里就不演示了,直接参考视频


  • step1:cmd --> net stop mysql
    停止mysq1服务
    需要管理员权限运行该cmd
  • step2:使用无验证方式启动mysql服务: mysqld --skip-grant-tables
  • step3:打开一个新的cmd窗口,直接输入mysql命分,敲回车。就可以登录成功
  • step4:use mysql;
  • step5:update user set password = password(‘你的新密码’) where user =‘root’;
    ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new_password’;
    ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘new_password’;
    这个根据你有没有%这种全部ip都能访问的root账号选择(所以这个很贫困),通常环境下mysql只会给你创建一个’root’@‘localhost’,但也说不定
    这个就是上面修改用户密码,有好几种语法·,根据mysql的般本不同有的可能不行了,多找几个试试
  • step6:关闭两个窗口
  • step7:打开任务管理器,手动结束mysqld.exe 的进程
  • step8:启动mysql服务
  • step9:使用新密码登录。
2 用户权限授予

参考视频
(1)查询某个用户权限



  • 语法:SHOW GRANTS FOR 用户名;
  1. -- 查询 ‘lisi’@‘%’ 用户的权限
  2. show grants for 'lisi'@'%';
复制代码

可以看到只有一个usage(登入)的权限
  1. -- 查询root用户的权限
  2. show grants for 'root'@'localhost';
复制代码

可以看到root有全部的权限,select,insert等等
(2)授予某个用户某些权限



  • 语法: grant 权限列表 on 数据库名.表名 to ‘用户名’@‘主机名’;
    可以使用通配符,看下面例子
  1. -- 给 'lisi'@'%' 用户授予查询db01.tb_emp表的权限
  2. grant select on db01.tb_emp to 'lisi'@'%';
  3. -- 给 'lisi'@'%' 用户授予查询db01下所有表的权限
  4. grant select on db01.* to 'lisi'@'%';
  5. -- 给 'lisi'@'%' 用户授予查询,插入,更新,删除db01.tb_emp表的权限
  6. grant select,insert,update,delete on db01.tb_emp to 'lisi'@'%';
  7. -- 给张三用户授予所有权限,在任意数据库,在任意表上,想当于root权限
  8. grant all privileges on *.* to 'zhangsan'@'localhost';
复制代码
(3)撤销某个用户某些权限



  • 语法:revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;
  1. -- 撤销 'lisi'@'%' 用户对db01.tb_emp表的查询权限
  2. revoke select on db01.tb_emp from 'lisi'@'%';
  3. -- 撤销 'lisi'@'%' 用户对db01.tb_emp表的所有权限
  4. revoke all privileges on db01.tb_emp from 'lisi'@'%';
  5. -- 撤销;’zhangsan'@'localhost'用户的所有权限, 撤销后,只会剩下USAGE登入权限
  6. revoke all privileges on *.* from 'zhangsan'@'localhost';
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表