前言:
👏 作者简介:我是笑霸final,一名热爱技术的在校学生。
📝 个人主页:个人主页1 || 笑霸final的主页2 📕 系列专栏:数据库
📧 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥 如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏
🐉 欢迎访问我的个人博客====>
笑霸final的个人博客
🧙 gitee主页笑霸final| |
github主页笑霸final
目录
- 一、登录mysql
- 二、创建用户
- 三、修改用户
- 四、 删除用户
- 4.1方式一:使用DROP方式删除(推荐)
- 方式2:使用DELETE方式删除
- 五、设置密码
- 5.1设置当前用户的密码
- 5.1修改其它用户密码
- 六、权限列表
- 七、授予权限
- 八收回权限
一、登录mysql
启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下
mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"
下面详细介绍命令中的参数:
-h参数
后面接主机名或者主机IP,hostname为主机,hostIP为主机IP。-P参数
后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,
不使用该参数时自动连接到3306端口,port为连接的端口号。* -u参数
后面接用户名,username为用户名-p参数
会提示输入密码。DatabaseName参数
指明登录到哪一个数据库中。如果没有该参数,就会直接登录到MySQL数据库
中,然后可以使用USE命令来选择数据库。-e参数
后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL
服务器。
二、创建用户
我们先登录root用户mysql -uroot -p
查看用户
use mysql;
select host , user from user;
创建用户语句的基本语法形式如下:
CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']];
- 用户名参数表示新建用户的账户,由 用户(User) 和 主机名(Host) 构成;
默认host是 %
- “[ ]”表示可选,也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户可以直接登录。不过,不指定密码的方式不安全,不推荐使用。如果指定密码值,这里需要使用
IDENTIFIED BY
指定明文密码值。 -
CREATE USER
语句可以同时创建多个用户。
比如我创建用户名为final的用户
密码为123
默认host是 %
create user 'final' identified by '123';
create user 'final1'@'localhost' identified by '123';
三、修改用户
用的UPDATE语句来修改
UPDATE mysql.user SET USER='新名称' WHERE USER='原来的名称';
FLUSH PRIVILEGES; #刷新权限
实战
update user set user='xbfinal' where user='final1';
四、 删除用户
4.1方式一:使用DROP方式删除(推荐)
基本语法形式如下:
DROP USER 用户名[,用户名]…;
用户名参数表示新建用户的账户,由 用户(User) 和 主机名(Host) 构成;
举例:
drop user xbfinal;# 默认删除host为%的用户
drop user 'xbfinal'@'localhost';
方式2:使用DELETE方式删除
DELETE FROM mysql.user WHERE Host=’hostname’ AND User=’username’;
# 执行完DELETE命令后要使用FLUSH命令来使用户生效,命令如下:
FLUSH PRIVILEGES;
注意:
不推荐通过 DELETE 进行删除
,系统会有残留信息保留。而drop user命令会删除用户以及对应的权限,执行命令后你会发现mysql.user表和mysql.db表的相应记录都消失了。
五、设置密码
5.1设置当前用户的密码
- 使用
ALTER USER
命令来修改当前用户密码 用户可以使用ALTER命令来修改自身密码,如下语句代表修改当前登录用户的密码。基本语法如下:
ALTER USER USER() IDENTIFIED BY 'new_password';
- 使用
SET语句
来修改当前用户密码 使用root用户登录MySQL后,可以使用SET语句来修改密码,具体SQL语句如下:
SET PASSWORD='new_password';
这里就不演示了
5.1修改其它用户密码
修改其他用户的密码就需要很高的权限比如root用户
- 使用ALTER语句来修改普通用户的密码 可以使用ALTER USER语句来修改普通用户的密码。
基本语法形式如下:
ALTER USER user [IDENTIFIED BY '新密码']
[,user[IDENTIFIED BY '新密码']]…;
实例
alter user xbfinal identified by '111';
我们发现需要本地登录 我们用虚拟机试一试
当然我们也能修改host实现远程登录
update user set host='%' where user='xbfinal';
六、权限列表
查看所有权限
show privileges;
查看当前用户权限
SHOW GRANTS;
# 或
SHOW GRANTS FOR CURRENT_USER;
# 或
SHOW GRANTS FOR CURRENT_USER();
查看某用户的全局权限
SHOW GRANTS FOR 'user'@'主机地址' ;
常用的一些权限
(
1) CREATE和DROP权限
,可以创建新的数据库和表,或删除(移掉)已有的数据库和表。如果将MySQL数据库中的DROP权限授予某用户,用户就可以删除MySQL访问权限保存的数据库。
(2)SELECT、INSERT、UPDATE和DELETE权限
允许在一个数据库现有的表上实施操作。(3) SELECT权限
只有在它们真正从一个表中检索行时才被用到。(4) INDEX权限
允许创建或删除索引,INDEX适用于已有的表。如果具有某个表的CREATE权限,就可以在CREATE TABLE语句中包括索引定义。 ((5) ALTER权限
可以使用ALTER TABLE来更改表的结构和重新命名表。(6) CREATE ROUTINE权限
用来创建保存的
程序(函数和程序),ALTER ROUTINE权限用来更改和删除保存的程序, EXECUTE权限 用来执行保存的
程序。(7) GRANT权限
允许授权给其他用户,可用于数据库、表和保存的程序。(8) FILE权限
使用户可以使用LOAD DATA INFILE和SELECT … INTO OUTFILE语句读或写服务器上的文件,任何被授予FILE权限的用户都能读或写MySQL服务器上的任何文件(说明用户可以读任何数据库目录下的文件,因为服务器可以访问这些文件)。
七、授予权限
给用户授权的方式有 2 种,分别是通过把
角色赋予用户给用户授权
和直接给用户授权
。用户是数据库的使用者,我们可以通过给用户授予访问数据库中资源的权限,来控制使用者对数据库的访问,消除安全隐患。
GRANT 权限1,权限2,…权限n
ON 数据库名称.表名称
TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令’];
实列
给li4用户用本地命令行方式,授予textdb这个库下的所有表
的插删改查的权限
GRANT SELECT,INSERT,DELETE,UPDATE
ON textdb.*
TO li4@localhost ;
授予通过网络方式登录的final用户 ,对所有库所有表的全部权限,密码设为111。注意这里唯独不包括grant的权限
GRANT ALL PRIVILEGES
ON *.*
TO final@'%' IDENTIFIED BY '123';
八收回权限
收回权限就是取消已经赋予用户的某些权限。收回用户不必要的权限可以在一定程度上保证系统的安全性。
MySQL中使用 REVOKE语句 取消用户的某些权限。使用REVOKE收回权限之后,用户账户的记录将从db、host、tables_priv和columns_priv表中删除,但是用户账户记录仍然在user表中保存(删除user表中的账户记录使用DROP USER语句)
收回权限命令
REVOKE 权限1,权限2,…权限n
ON 数据库名称.表名称
FROM 用户名@用户地址;
举例
#收回全库全表的所有权限
REVOKE ALL PRIVILEGES
ON *.*
FROM joe@'%';
#收回mysql库下的所有表的插删改查权限
REVOKE SELECT,INSERT,UPDATE,DELETE
ON mysql.*
FROM joe@localhost;