徐锦洪 发表于 2024-10-31 05:58:55

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

目次
一、DCL小结(数据控制语言)
1、查询表不在当前使用的数据库,可以在表名前加数据库名。
2、体系数据库mysql 的 user 表。
3、在体系数据库mysql 的 user 表当中如何判定创建的用户是否唯一?
4、体系数据库mysql 的 user 表当中的用户密码是加密的。
5、体系数据库mysql 的 user 表去中创建用户的语法。
6、下令行快速启动与关闭mysql服务。
7、如何在创建用户后去授予权限?
8、给用户授权时的几种常用权限。
9、撤销权限。
10、查询用户权限。
11、删除用户。
12、修改用户密码(高、低版本)。

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

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

#如下
select * from 指定数据库名.表名;    2、体系数据库mysql 的 user 表。



[*]在MySQL数据库当中用户的信息、用户所具有的权限的信息。这些都是存放在体系数据库mysql 的 user 表当中。
https://i-blog.csdnimg.cn/direct/9759a4572880472ca0321df53fd4cda6.png
    3、在体系数据库mysql 的 user 表当中如何判定创建的用户是否唯一?



[*]不是单纯的看"User"这一列,而是还要看"Host"这一列。(两个都满意一样,才冲突!!)
[*]Host字段。值设置为"localhost"表示这个用户只能在本机访问数据库服务器。值设置为"%"(百分号)表示任何一台电脑都能通过创建的用户访问数据库服务器。
https://i-blog.csdnimg.cn/direct/f96fa8c00238452ca81f8a668671d338.png
    4、体系数据库mysql 的 user 表当中的用户密码是加密的。

(不是明文,不安全!)


[*]其中对应的密笔墨段是"authentication_string"。
    5、体系数据库mysql 的 user 表去中创建用户的语法。



[*]创建用户的语法。
#语法:
CREATE USER 用户名@地址 IDENTIFIED BY '密码';
#创建用户
#localhost/% 表示本机访问还是可远程访问
CREATE USER 用户名@localhost/% IDENTIFIED BY '密码';

[*]两种创建的举例。
--user1用户只能在localhost这个IP登录mysql服务器
CREATE USER user1@localhost IDENTIFIED BY '123';

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

(以管理员身份运行)
https://i-blog.csdnimg.cn/direct/f6f5e32ac8a0477e83c2a63123303db4.png


[*]启动服务:下令行敲下令"net start mysql"即可。
https://i-blog.csdnimg.cn/direct/aabace56b27f47da9f03161eb03fbc00.png


[*]关闭服务:下令行敲下令"net start mysql"即可。
https://i-blog.csdnimg.cn/direct/0798d36da6ff4689a34581fa98a652a2.png


[*]退出mysql。
下令行输入"exit"。
https://i-blog.csdnimg.cn/direct/3e369d4547f746448771ba2ebd76c0cc.png
    7、如何在创建用户后去授予权限?



[*]关键字:GRANT。


[*]授予权限的语法。
(1)其中"on"的意思就是把某些库的某些表的什么权限给这个用户。
(2)"to"的意思就是给指定的用户。
GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;

[*]注意事项。
(1)其中多个权限之间,使用逗号分隔。
(2)授权时,数据库名和表名可以使用 * 进行通配,代表所有。


[*]举例如下。
#赋予数据库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://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83Ahttps://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html
https://i-blog.csdnimg.cn/direct/ca9718e2d562434583364f9e26fcfaee.png
    9、撤销权限。



[*]关键字:REVOKE。


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


[*]撤销权限的语法。
REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名;

[*]举例如下。
REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;

[*]注意撤销权限之后,尽量让这个用户重新登录测试!
    10、查询用户权限。



[*]语法。
SHOW GRANTS FOR 用户名;
SHOW GRANTS FOR user1@localhost;

[*]举例。
https://i-blog.csdnimg.cn/direct/601c22bc08e04c33be116c5b337a3a5a.png
    11、删除用户。



[*]语法。
DROP USER 用户名;
DROP USER user1@localhost;

[*]注意事项。
1、在MySQL中必要通过用户名@主机名的方式,来唯一标识一个用户。
2、主机名可以使用 % 通配。
3、这类SQL开辟职员操作的比较少,主要是DBA( Database Administrator 数据库管理员)使用。
    12、修改用户密码(高、低版本)。



[*]mysql高版本语法。
https://i-blog.csdnimg.cn/direct/2693ae5accd54606a79b3a8e884db507.png


[*]mysql低版本语法。
USE mysql;
UPDATE USER SET authentication_string=PASSWORD('新密码') WHERE User='用户名' and Host='IP';
#下面这个代表刷新
FLUSH PRIVILEGES; https://i-blog.csdnimg.cn/direct/88d19b67718047cc90a55690b13725a7.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: mysql上课总结(2)(DCL的所有操作总结、下令行快速启动/关闭mysql服务)