mysql上课总结(2)(DCL的所有操作总结、命令行快速启动/关闭mysql服务)

目录

一、DCL小结(数据控制语言)

1、查询表不在当前使用的数据库,可以在表名前加数据库名。

[2、系统数据库mysql 的 user 表。](#2、系统数据库mysql 的 user 表。)

[3、在系统数据库mysql 的 user 表当中如何判断创建的用户是否唯一?](#3、在系统数据库mysql 的 user 表当中如何判断创建的用户是否唯一?)

[4、系统数据库mysql 的 user 表当中的用户密码是加密的。](#4、系统数据库mysql 的 user 表当中的用户密码是加密的。)

[5、系统数据库mysql 的 user 表去中创建用户的语法。](#5、系统数据库mysql 的 user 表去中创建用户的语法。)

6、命令行快速启动与关闭mysql服务。

7、如何在创建用户后去授予权限?

8、给用户授权时的几种常用权限。

9、撤销权限。

10、查询用户权限。

11、删除用户。

12、修改用户密码(高、低版本)。


一、DCL小结(数据控制语言)

1、查询表不在当前使用的数据库,可以在表名前加数据库名。
sql 复制代码
#如下
select * from 指定数据库名.表名;
2、系统数据库mysql 的 user 表。
  • 在MySQL数据库当中用户的信息、用户所具有的权限的信息。这些都是存放在系统数据库mysql 的 user 表当中。
3、在系统数据库mysql 的 user 表当中如何判断创建的用户是否唯一?
  • 不是单纯的看"User"这一列,而是还要看"Host"这一列。 (两个都满足一样,才冲突!!)
  • Host字段。值设置为"localhost"表示这个用户只能在本机访问数据库服务器。值设置为"%"(百分号)表示任何一台电脑都能通过创建的用户访问数据库服务器。
4、系统数据库mysql 的 user 表当中的用户密码是加密的。

(不是明文,不安全!)

  • 其中对应的密文字段是"authentication_string"。
5、系统数据库mysql 的 user 表去中创建用户的语法。
  • 创建用户的语法。
sql 复制代码
#语法:
CREATE USER 用户名@地址 IDENTIFIED BY '密码';
sql 复制代码
#创建用户
#localhost/% 表示本机访问还是可远程访问
CREATE USER 用户名@localhost/% IDENTIFIED BY '密码';
  • 两种创建的举例。
sql 复制代码
--user1用户只能在localhost这个IP登录mysql服务器
CREATE USER user1@localhost IDENTIFIED BY '123';

--user2用户可以在任何电脑上登录mysql服务器
CREATE USER user2@'%' IDENTIFIED BY '123';
6、命令行快速启动与关闭mysql服务。

(以管理员身份运行)

  • 启动服务:命令行敲命令"net start mysql"即可。
  • 关闭服务:命令行敲命令"net start mysql"即可。
  • 退出mysql。

命令行输入"exit"。

7、如何在创建用户后去授予权限?
  • 关键字:GRANT。

  • 授予权限的语法。

(1)其中"on"的意思就是把某些库的某些表的什么权限给这个用户。

(2)"to"的意思就是给指定的用户。

sql 复制代码
GRANT 权限1, ... , 权限n ON 数据库.* TO 用户名;

  • 注意事项。

(1)其中多个权限之间,使用逗号分隔。

(2)授权时,数据库名和表名可以使用 * 进行通配,代表所有。


  • 举例如下。
sql 复制代码
#赋予数据库mydb1的所有表的指定权限
GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@localhost; 

#赋予数据库mydb1的所有表的所有权限
GRANT ALL ON mydb1.* TO user2@localhost;

  • mysql做不到控制用户只能访问某些列。没有这么精细的控制。
  • 但是可以在Java代码中做权限控制。
8、给用户授权时的几种常用权限。

(下述只是简单罗列了常见的几种权限描述)

(其他权限描述及含义,可以直接参考官方文档)官方文档https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html

9、撤销权限。
  • 关键字:REVOKE。

  • 撤销权限就是收回,也就是"from"。表示从哪个用户收回权限。授予权限就是给"to"。

  • 撤销权限的语法。
sql 复制代码
REVOKE权限1, ... , 权限n ON 数据库.* FORM 用户名;
  • 举例如下。
sql 复制代码
REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;
  • 注意撤销权限之后,尽量让这个用户重新登录测试!
10、查询用户权限。
  • 语法。
sql 复制代码
SHOW GRANTS FOR 用户名;
SHOW GRANTS FOR user1@localhost;
  • 举例。
11、删除用户。
  • 语法。
sql 复制代码
DROP USER 用户名;
DROP USER user1@localhost;
  • 注意事项。

1、在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户。

2、主机名可以使用 % 通配。

3、这类SQL开发人员操作的比较少,主要是DBA( Database Administrator 数据库管理员)使用。

12、修改用户密码(高、低版本)。
  • mysql高版本语法。
  • mysql低版本语法。
sql 复制代码
USE mysql;
UPDATE USER SET authentication_string=PASSWORD('新密码') WHERE User='用户名' and Host='IP';
#下面这个代表刷新
FLUSH PRIVILEGES; 
相关推荐
阿里小阿希14 分钟前
Vue3 + Element Plus 项目中日期时间处理的最佳实践与数据库设计规范
数据库·设计规范
且行志悠1 小时前
Mysql的使用
mysql
白鹭1 小时前
MySQL源码部署(rhel7)
数据库·mysql
666和7772 小时前
Struts2 工作总结
java·数据库
还听珊瑚海吗2 小时前
SpringMVC(一)
数据库
星期天要睡觉3 小时前
MySQL 综合练习
数据库·mysql
Y4090013 小时前
数据库基础知识——聚合函数、分组查询
android·数据库
JosieBook4 小时前
【数据库】MySQL 数据库创建存储过程及使用场景详解
数据库·mysql