MySQL_11 用户管理和权限管理

news/2024/11/8 9:08:09/

目录

一、用户管理

        1.用户介绍 : 

        2.操作指令 : 

        3.代码演示 : 

二、权限管理

        1.MySQL常见权限汇总 :

        2.相关指令 : 

        3.代码演示 : 


一、用户管理

        1.用户介绍 : 

                MySQL中的用户都存储在系统数据库mysql中的user表中,如下图所示 : 

                user表中,几个比较重要的字段——
                Host : 允许“登录”的位置(IP);localhost表示该用户只允许本机登录;但也可以指定IP地址,eg : 192.168.1.100,192.168.1.%;
                User :  用户名;
                Authentication_string : 加密后的密码,mysql8.0默认是通过caching_sha2_password()函数来加密的。

                Q : 为什么需要进行用户管理?
                A : 当我们做项目开发时,可以根据不同的开发人员,赋予他不同的MySQL操作权限;因此,MySQL数据库的管理员root用户,会根据需要创建不同的用户,并分别赋予相应的权限,供不同人员来使用

        2.操作指令 : 

        1° 创建用户(同时指定密码)——

        CREATE USER '用户名' @ '允许登录的位置' IDENTIFIED BY 'pwd_expr';

        2° 删除用户 ——

        DROP USER '用户名' @ '允许登录的位置';

        3° 修改密码 —— (MySQL8.0)

        ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'pwd_expr';

        PS : 

        MySQL下,认为用户的完整信息由用户名和登陆位置组成

        不同的数据库用户,登录到DBMS后,根据相应的权限,可以操作的数据库和数据对象(表,视图,触发器)都不一样

        在创建用户时,若未指定Host,则为%,表示所有IP都有连接权限;同理,在删除用户时,若Host != %,必须在用户信息中明确指定用户的Host值。

        3.代码演示 : 

                创建一个新的用户Ice,密码假设为12345,如下所示 : 

CREATE USER 'Ice'@'localhost' IDENTIFIED BY '12345';

                尝试登录Ice用户,如下 : 

                登录成功后,会发现Ice用户可操作的数据库很少,如下图所示  :

                尝试更改Ice用户的密码,如下 : 

ALTER USER 'Ice'@'localhost' IDENTIFIED BY '54321';

                更改密码后,已建立的Ice用户与MySQL的连接将无法成功,如下 : 

                这时,在“编辑连接”中更改当前的登录密码可以重新连接。如下 :

                尝试删除Ice用户。 

                删除前,可以在mysql.user表中看到Ice用户存在,如下图所示  :

                使用DROP USER 指令删除Ice用户 :  

DROP USER 'Ice'@'localhost' ;

                删除成功后,Ice用户在user表中不存在。 


二、权限管理

        1.MySQL常见权限汇总 :

  • ALL [PRIVILEGES] : 设置除GRANT OPTION之外的所有简单权限
  • ALTER : 允许使用ALTER TABLE
  • ALTER ROUTINE : 更改或取消已存储的子程序
  • CREATE : 允许使用CREATE TABLE
  • CREATE ROUTINE : 创建已存储的子程序
  • CREATE TENPORARY TABLES : 允许使用CREATE TEMPORARY TABLE
  • CREATE USER : 允许使用CREATE USER,DROP USER,RENAME USER和REVOKE ALL PRIVILEGES。
  • CREATE VIEW : 允许使用CREATE VIEW
  • DELETE : 允许使用DELETE
  • DROP : 允许使用DROP TABLE
  • EXECUTE : 允许用户运行已存储的子程序
  • FILE : 允许使用SELECT..INTO OUTFILE和LOAD DATA INFILE
  • INDEX : 允许使用CREATE INDEX和DROP INDEX
  • INSERT : 允许使用INSERT
  • LOCK TABLES : 允许对您拥有SELECT权限的表使用LOCK TABLES
  • PROCESS : 允许使用SHOW FULL PROCESSLIST
  • REFERENCES : 未被实施
  • RELOAD : 允许使用FLUSH
  • REPLICATION CLIENT : 允许用户询问从属服务器或主服务器的地址
  • REPLICATION SLAVE : 用于复制型从属服务器(从主服务器中读取二进制日志事件)
  • SELECT : 允许使用SELECT
  • SHOW DATABASES : SHOW DATABASES显示所有数据库
  • SHOW VIEW : 允许使用SHOW CREATE VIEW
  • SHUTDOWN : 允许使用mysqladmin shutdown
  • SUPER : 允许使用CHANGE MASTER,KILL,PURGE MASTER LOGS和SET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connectionso
  • UPDATE : 允许使用UPDATE
  • USAGE : “无权限”的同义词
  • GRANT OPTION : 允许授予权限

        2.相关指令 : 

        1° 授予权限

        GRANT purview_list ON 库.对象名 TO '用户名'@'登录位置' [IDENTIFIED BY 'pwd_expr'];
        注意事项——

        ①权限列表中的多个权限使用逗号分隔开,eg : 

        eg1 : GRANT SELECT, DELETE, CREATE ON ...;

        eg2 : GRANT ALL ON...;        //表示授予该用户在该对象上的全部权限。

        ②*.*代表本系统中的所有数据库的所有数据对象(表,视图,存储过程)库.*表示某个指定数据库中的所有数据对象(表,视图,存储过程)

        ③IDENTIFIED BY 可写可不写。若写出,用户存在则修改该用户的密码用户不存在则创建该用户。

        2° 回收权限

        REVOKE purview_list ON 库.对象名 FROM '用户'@'登录位置';

        PS : 

        若权限没有生效,可以使用FLUSH PRIVILEGES; 指令来刷新(一般来说都会立即生效,尤其对于高版本的MySQL)。

        3.代码演示 : 

                要求如下——
                ①创建用户five@localhost;
                ②在root用户下为five用户授予一定权限;
                ③在five用户下测试被授予的权限是否生效;
                ④测试five用户未被授予的权限;
                ⑤回收five用户的权限并删除five用户。

                演示如下——

                ①创建five用户 : 

CREATE USER 'five'@'localhost' IDENTIFIED BY '666';SELECT * FROM mysql.user;

                ②在root用户下为five用户分配权限 : 

                假定我们可以使five用户对select_ex数据库中的emp表进行访问,授予five用户查询,修改,和删除数据的权限。如下图所示 : 

GRANT SELECT,UPDATE,INSERT ON select_ex.emp TO 'five'@'localhost';

                ③登录five用户,查看权限是否生效 : 

                可以看到,five用户视角下,已经显示有select_ex数据库以及emp表。
                继续,测试被授权的指令能否使用 : 

INSERT INTO empVALUES (6666,'NewBee','Manage',1,'2002-011-11',99999.00,99999.00,10);UPDATE empSET ecareer = 'Boss';SELECT * FROM emp;

                ④测试five用户能否删除表中的数据 : 

DELETE FROM empWHERE eno = 6666;

                显然无法成功 :  

                可以继续在root用户下追加权限,使five用户可以进行删除数据的操作 : 

GRANT DELETE ON select_ex.emp TO 'five'@'localhost';

                five用户再次尝试删除数据 : 

DELETE FROM empWHERE eno = 6666;SELECT * FROM emp;

                ⑤回收five用户的权限并删除five用户 : 

REVOKE INSERT,DELETE,SELECT,UPDATE ON select_ex.emp FROM 'five'@'localhost';

                在five用户下刷新连接,将看不到selec_ex数据库,如下图所示 : 

                在root用户下删除five用户 : 

DROP USER 'five'@'localhost';

                five用户将无法重新连接。

        System.out.println("END-------------------------------------------------------------------------------"); 


http://www.ppmy.cn/news/185330.html

相关文章

天气预报信息获取程序--可以使用

一、优化了,输入城市代码,获取城市信息 # codingutf-8 import requests import re import csv import datetimeclass WeatherForecast(object):def __init__(self,city_code,start_year,end_year,end_month):self.city_codecity_codeself.start_yearsta…

机器学习:基于XGBoost对信用卡欺诈行为的识别

机器学习:基于XGBoost对信用卡欺诈行为的识别 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞&#x1f4…

超薄本在未连接网线怎么查看本地mac地址

正常的情况下我们查看mac地址的时候,直接在winR,输入cmd,调出操作窗口输入ipconfig/all命令就行了。但是我们在未插入转接头的时候,是查看不到本地mac地址的,只有无线网和虚拟的mac地址,查看不到本地的mac地…

超薄笔记本电脑回收站里面的文件清理了怎么找回

回收站文件清空了是很正常的一件事,毕竟里面如果放了很多的文件看着也不舒服,这时候我们就会开始清理电脑上回收站的文件,因为工作的时候电脑上会有很多的文件误删进去回收站中,删除之后就忘记拿出来了,清理完回收站的…

java编程选游戏本还是轻薄本,编程用什么笔记本,超薄本还是游戏本

cpu内存硬盘越大越快越好,游戏编程需要好的显卡。 理由很简单: 1、可能要用很多ide,我经常用的ide就有4个,都是大型软件,同时开要跑得起来。 2、机器上不可避免的要安装数据库,也要跑得起来。 3、做虚拟机跑…

s40-10报价 宏碁swift_3:2屏经典回归:宏碁发布 Swift 3(SF313-52/G)超薄笔记本电脑...

3:2屏经典回归:宏碁发布 Swift 3(SF313-52/G)超薄笔记本电脑699美元(约4850)元 2020-01-08 10:32:14 16点赞 32收藏 20评论 还记得之前我们曾报道过的3:2长宽比屏笔记本吗?现在,它来了,acer(宏碁)官方正式发布了这款颇…

欣赏ThinkPad X1超薄本

CONEY 刚换了T410,看到这款X1,表示兴趣很大,下面让我们领略一下这款超薄本的魅力吧~ 联想即将要推出迄今为止最薄的ThinkPad X1 笔记本。这款笔记本将采用新的电池技术。 X1的电池将是用户无法更换的,但这块电池能够带来更好的性…

环境搭建第二弹--超薄本ubuntu和开发板共享文件

前言: 开发板是超薄本,没有物理网卡,只有内置无线网卡。 网上买了个USB转网口,设置虚机网卡桥接选择USB网口,仍然不能使得ubuntu和开发板互ping通。只得借助路由器。 使用的是小米路由器。 环境搭建 小米路由器设置 小米路由器恢复出厂设置 IP设置为DHCP,IP会被分配为…