MySQL_11 用户管理和权限管理

news2024/11/17 13:21:46

目录

一、用户管理

        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 emp
		VALUES 
		(6666,'NewBee','Manage',1,'2002-011-11',99999.00,99999.00,10);
		
UPDATE emp
		SET ecareer = 'Boss';
		
SELECT * 
		FROM emp;

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

DELETE FROM emp
		WHERE eno = 6666;

                显然无法成功 :  

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

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

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

DELETE FROM emp
		WHERE 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.coloradmin.cn/o/604794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

银行从业——法律法规——金融基础知识

第二章 金融基础知识 第二节 货币政策 【 知识点1】 货币政策目标 制定和实施货币政策, 首先必须明确货币政策最终要达到的目的, 即货币政策的最终目标。中央银行通过货币政策工具操作直接引起操作目标的变动,操作目标的变动又通过一定的途…

深度:解密数据之力,奏响制造业智能升级的狂想曲!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在21世纪的今天,我们正在经历着一个伟大的变革,一个由数字技术引领的产业革命——智能制造。在这场变革中,大数据、人工智能、5G专网、工业物联网和智能机器人等尖端技术,正如…

Grounded Language-Image Pre-training(论文翻译)

文章目录 Grounded Language-Image Pre-training摘要1.介绍2.相关工作3.方法3.1统一构建3.2.语言感知深度融合3.3.使用可扩展的语义丰富数据进行预训练 4.迁移到既定的基准4.1.COCO上的zero-shot和监督迁移学习4.2.LVIS上的zero-shot 迁移学习4.3.Flickr30K实体上的 phrase gro…

Redis核心数据结构-01

1、String String 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字。 常用命令:get、set、incr、decr、mget等。 应用场景:String是最常用的一种数据类型,普通的key/ value 存储都可以归为此类&…

MongoDB复杂分组聚合查询

目录 1 聚合查询1.1 MongoDB的聚合查询 2 聚合管道方法2.1 聚合流程2.1.1 详细流程 2.2 聚合语法2.2.1 参数说明2.2.2 注意事项 2.3 常用聚合管道2.3.1 与mysql聚合类比 3 使用示例3.1 统计所有数据3.2 对所有城市人数求合3.3 对城市缩写相同的城市人数求合3.4 state重复的城市…

【笔试强训选择题】Day20.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&#xff…

Splunk Enterprise 9.0.5 (macOS, Linux, Windows) 发布 - 机器数据管理和分析

Splunk Enterprise 9.0.5 (macOS, Linux, Windows) - 机器数据管理和分析 请访问原文链接:https://sysin.org/blog/splunk-9/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 混合世界的数据平台 快速、大规模地从…

模块的加载机制

4.1优先从缓存中加载 模块在第一次加载后会被缓存。这也意味着多次调用require()不会导致模块的代码被执行多次 注意:不论是内置模块、用户自定义模块、还是第三方模块,它们都会优先从缓存中加载,从而提高模块的加载效率 4.2内置模块的加载…

【服务器】本地搭建PHP简单Imagewheel私人图床系统

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

Install Harbor 2.8 on Centos

目录 Node & System/Software Lists Architecture Overview of Harbor Install Harbor 2.8 Harbor Installation Prerequisites Install Docker and Docker Compose Install Harbor Pull and Push image from Harbor Reference documentation Node & System/S…

每日一道面试题之java 中 IO 流分为几种?

IO流是什么? 流是数据在数据源(文件)和程序(内存)之间经历的路径。 这样解释似乎是很抽象不易理解的,因此我们拿生活中的例子来说,我们可以把流看成流动的自来水,打开水阀,自来水就会通过水管从水源流到各个用户家中…

华为OD机试真题 Java 实现【求最小公倍数】【牛客练习题】

一、题目描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。 数据范围:1≤a,b≤100000 。 二、输入描述 输入两个正整数A和B。 三、输出描述 输出A和B的最小公倍数。 四、解…

卓望数码前端一面

卓望数码前端一面 原文网址:https://www.nowcoder.com/discuss/409361218459234304?sourceSSRsearch 1.css中flex布局有哪些常见的属性 display:flex 首先让一个容器为flex布局应该写 display:flex flex-direction flex有两个关键的轴,分别是主轴…

chatgpt赋能python:Python列表倒序排序

Python列表倒序排序 Python是一种高级编程语言,被广泛用于各种领域的应用程序开发中,包括数据科学和机器学习。Python语言自带许多强大的编程工具,其中列表是其中最基础的数据结构之一。它可以让程序员整理和管理大量的数据,在实…

7.Nginx优化

文章目录 Nginx优化Nginx隐藏版本号修改Nginx的用户和组用户配置Nginx网页缓存时间日志分割配置Nginx连接超时、连接保持修改Nginx的进程数配置Nginx网页压缩设置防盗链 Nginx优化 Nginx隐藏版本号 隐藏Nginx版本号,避免安全漏洞泄漏Nginx隐藏版本号的方法 修改配…

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

一、优化了,输入城市代码,获取城市信息 # 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…

Linux安装rinetd实现端口转发

在Linux系统中大多数情况选择用iptables来实现端口转发,iptables虽然强大,但配置不便,而且新手容易出错。在此分享另一个TCP/UDP端口转发工具rinetd,rinetd体积小巧,配置也很简单。 这篇文章以CentOS 7为例&#xff0…

职场的尽头,是编制?

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 本来以为“上岸”是年轻人的专利,没想到这两天却从一位42岁的朋友那里,听到了他老人家上岸的消息。这位朋友曾在阿里任职多年,从去年下半年就开始和一所大学接洽&am…

Visual C++ 6.0环境开发PACS影像系统的技术指标和精准算法

一、技术指标 •图像文件格式:DCM、JPG、BMP、TIF等 •可支持显示属性设置:24/32位真彩;256位色(黑白) •可支持监视器分辨率:1024﹡768;1280﹡1024;1600&…

chatgpt赋能python:Python删除非数字字符

Python删除非数字字符 Python是一种流行的编程语言,主要用于数据科学、人工智能、Web开发和自动化等领域。在数据处理和清洗中,Python非常强大且易于使用,而Python删除非数字字符是一个非常常见的操作。在本文中,我们将介绍如何用…