MySQL中用户权限、库权限、表权限的控制

article/2025/10/25 18:44:43

MySQL中用户权限、库权限、表权限的控制 

在开发中,除了可以在脚本代码中控制开发者对MySQL数据库数据表的权限,还可以在mysql层面进行控制。

 

对mysql的权限的控制可以大致分为三个层面:①连接上允不允许(是否能登录到mysql服务器)②数据库层面上:允许用户操作哪些数据库③数据标层面上:允许用户操作哪些表,并可以定义对表的操作权限:比如insert,create,update等。如果还觉得不够精细,MySQL还可以精确到对某表某列控制操作权限。

 

①连接到数据库的权限:我们在安装MySQL的过程中,会有一个会话定义你的用户名和密码,这里我用的是root和123456,这个用户名,是最开始连接到MySQL的用户,那么该怎么查看MySQL的用户信息呢?我们用root和123456连接到MySQL之后,show databases;可以看到有很多数据库

 

use mysql;使用mysql那个数据库,在这个数据库里,可以看到两个表:user表,db表和table_priv。

 

 

用select *from db\G 可以从db表中看到哪些用户拥有对哪些数据库的权限。查看tables_priv可以查看用户拥有哪些表的操作权限。

 

查看user表则可以看到能登录到MySQL的用户信息:(以下的user表均指的是mysql库下的user表)

 

select host,user,password from user;

 

那么,该如何新增一个用户,用以连接到MySQL呢?如果你想用

 

insert into user (host,user,password)values('localhost','hehe','123456');

 

来添加用户,那么MySQL会报错:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误

正确的定义方法是

 

grant [权限1,权限2...] on 某库.某表 to 新用户名@'主机名/IP地址' identified by '密码';

 

我们可以定义一个用户并让他拥有所有库,所有表的所有增删改查等操作权限,语句如下:

 

grant all on *.* to hehe@'localhost' identified by '123456';

 

如果要删除这个用户,用delete语句就可以了。

 

②库权限的控制:我们可以定义用户可以操作的库,只需要在上面的语句中,改各参数即可,你可能已经猜到了:上面语句中的"某库"修改成对应的库名即可。例如,给hehe用户赋予操作test库的所有权限:

 

grant all on test.* to hehe@'localhost' identified by '123456';

 

③精细到对表的权限的控制:改一下"某表"和"权限X"就可以了。例如:定义给用户hehe操作test库的goods表的insert,select,update的权限,代码如下:

 

 

grant insert,select,update on test.goods to hehe@'localhost' identified by '123456';

 

最后,怎样回收用户的库级和表级权限呢?语法如下:

revoke [权限1,权限2...] on 某库.某表 from 用户名@'主机名/IP';

 

例如:回收用户hehe对test库的所有表的update的权限:

revoke update on test.* from hehe@'localhost';

 

可不可以回收用户对具体哪一张表的权限呢?我试了一下,貌似是不行的,报错信息如下:

 

 

最后提一下:如果要让某子网下的用户(或者某个IP地址)都可以访问数据库服务器时,可以这样定义用户:

 

  1. update user set host='192.168.1.%' where user='hehe';/*<span style="white-space:pre"> </span>%表示匹配IP地址192.168.1.1至192.168.1.254*/

  2. flush privileges;/*刷新权限以生效*/

 

具体到某个IP地址时把%改成具体的地址即可。有了可以用IP限制登陆的主机,外网的用户就不能登录到内网的MySQL服务器了。


http://chatgpt.dhexx.cn/article/qxLpQvLm.shtml

相关文章

数据库表设计1:用户权限管理

前言&#xff1a;权限管理是所有后台系统的都会涉及的一个重要组成部分&#xff0c;主要目的是对不同用户访问资源进行权限的控制&#xff0c;避免因权限控制缺失或操作不当引发的风险问题&#xff0c;如操作错误&#xff0c;隐私数据泄露等问题。 1、RBAC简介 RBAC&#xff0…

用户、角色、权限表的关系(mysql)

一&#xff0c;各个表格 1、用户表 CREATE TABLE t_user ( id varchar(40) NOT NULL, username varchar(20) NOT NULL, PRIMARY KEY (id) ) 2、角色表 CREATE TABLE t_role ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, description varchar(255) DEFAUL…

MySQL 权限管理表设计

阅读目录 MySQL 权限管理表设计创建三张主表三张表添加数据创建两张关系表两张表添加数据关联查询1 查询刘德华的角色2 查询苹果游客这个角色对应的用户是谁?3 查询总管理员的权限有哪些?4 查询苹果浏览权限对应的角色有哪些?5 查询刘德华的权限有哪些?6 查询杨幂的权限有哪…

权限管理数据表设计

权限管理数据表的设计 需要五张表&#xff0c;分别为&#xff08;此处以MySQL为例&#xff09; 用户表 t_user 角色表t_role权限表t_permission用户角色表t_user_rolet角色权限表t_role_permission 用户拥有什么角色&#xff0c;这个角色拥有什么权限 用户表&#xff08;t_u…

用户权限设置5张表

--权限表&#xff08;资源和权限合并&#xff09; CREATE TABLE sys_permission ( id number(20) PRIMARY KEY NOT NULL,-- COMMENT 主键, name varchar2(128) NOT NULL , --COMMENT 资源名称, type varchar2(32) NOT NULL, -- COMMENT 资源类型&#xff1a;men…

MySQL权限表

一、权限系统概述 安装MySQL时自动安装一个名为mysql的数据库。mysql数据库下面存储的都是权限表。 用户登录以后&#xff0c;MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。这些权限表中最重要的是user表、db表和host表&#xff0c;除此之外&#xff0c;还…

权限管理用到的表

前言&#xff1a; 一个成熟的系统系统是离不开权限管理的&#xff0c;说权限管理就必须要说下权限管理经典的五张表了&#xff0c;无论是自定义的权限管理框架&#xff0c;还是流行的Shiro、SpringSecurity等权限管理框架都是离不开这五张表的&#xff0c;哪五张表呢&#xff0…

表设计之权限管理

分析 权限管理需要设计三张主表和两张关系表主表包括:用户表,角色表,权限表关系表:用户-角色关系表,角色权限关系表 建表准备数据 创建三张主表: 用户表, 角色表,权限表 create table user(id int primary key auto_increment, name varchar(20));create table role(id int p…

表设计----用户表,角色表,权限表

基于角色的访问控制&#xff1a;&#xff08;java Web 编程口诀&#xff09; 用户表角色表&#xff0c;用户角色中间表。 角色表权限表&#xff0c;角色权限中间表。 一个用户可有多个角色&#xff0c;一个角色又可有多个权限。这就是用户-角色-权限授权的模型。 为何不直接让…

用户·角色·权限·表

一&#xff0e;引言 因为做过的一些系统的权限管理的功能虽然在逐步完善&#xff0c;但总有些不尽人意的地方&#xff0c;总想抽个时间来更好的思考一下权限系统的设计。 权限系统一直以来是我们应用系统不可缺少的一个部分&#xff0c;若每个应用系统都重新对系统的权限进行设…

用户·角色·权限·表的设计

设计一个灵活、通用、方便的权限管理系统。 在这个系统中&#xff0c;我们需要对系统的所有资源进行权限控制&#xff0c;那么系统中的资源包括哪些呢&#xff1f;我们可以把这些资源简单概括为静态资源&#xff08;功能操作、数据列&#xff09;和动态资源&#xff08;数据&am…

MySQL - 权限表

目录 User表 1.范围列&#xff08;或用户列&#xff09; host &#xff1a; 表示连接类型 user &#xff1a; 表示用户名&#xff0c;同一用户通过不同方式链接的权限是不一样的。 password &#xff1a; 密码 2.权限列 Grant_priv Shutdown_priv Super_priv Execut…

基于matlab的自适应PSO优化算法仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 粒子群优化算法&#xff08;PSO&#xff09;&#xff0c;粒子群中的每一个粒子都代表一个问题的可能解&#xff0c; 通过粒子个体的简单行为&#xff0c;群体内的信息交互实现问题求解的智能性。…

标准PSO辨识NARMAX模型源码程序

% 用标准PSO辨识NARMAX模型 % y[-0.4 0.2 0.4 0.8 0.2 0.3]*... % [y0(k-1) y0(k-2)*y0(k-3) y0(k-4) u(k-1)^3 y0(k-2)^2 u(k-3)] % e(k) % function [iter,Xgbest,fgbest]sPso(err,var,Nc_max) clc,clear,format long %--------------------------------------------------…

粒子群算法PSO

文章目录 粒子群算法PSO1. 简介1.1 简介和背景 2. 算法2.1 参数介绍2.2 流程速度更新公式位置更新公式 2.3 应用 3. 代码3.1 matlab一维的二维的 3.2 python 粒子群算法PSO 1. 简介 1.1 简介和背景 起源&#xff1a;1995年&#xff0c;受到鸟群觅食行为的规律性启发&#xf…

运动控制器PSO位置同步输出(二):PSO模式详解

本节我们主要去讲解一下多种PSO模式原理和使用的讲解&#xff0c;用户可根据实际需求灵活选择触发模式。 一.硬件说明 硬件选型的首要要求是支持PSO功能&#xff0c;再分析PSO的应用场合和轴数等选择具体的型号。本例以ZMC460N双总线运动控制器为例展开介绍。 PSO功能用于控制…

进化算法之粒子群算法介绍附代码——PSO

粒子群算法PSO 背景介绍算法介绍鸟群觅食算法&鸟群重点 算法介绍简单概念大致流程核心流程 核心公式公式拆解 算法的伪代码PSO的应用场景 背景介绍 算法介绍 粒子群算法&#xff0c;英文全称为Partricle Swarm Optimization&#xff0c;所以简称为PSO算法&#xff0c;它是…

粒子群算法PSO求解最大值和最小值案例(超详细注释)

目录 前言 1.粒子群算法简介和难点理解 1.1概念理解 ①非劣解集和支配 ②个体极值和群体极值 ③个体适应度值和群体适应度值 1.2 算法流程和理解 1.3 速度和位置更新公式 1.4 rand、randn、rands、randi函数说明 2. 粒子群算法求解最大值问题 2.1 常数惯性权重因子求…

PSO简介

粒子群优化算法(Particle Swarm Optimization,PSO) PSO算法对每个粒子的要求 所有粒子都在一个D维空间中进行搜索所有粒子都由一个适应函数确定适应值以判断目前位置的好坏每个粒子都有记忆功能&#xff0c;可以记住寻找到的最佳位置每个粒子有一个速度和飞行方向 粒子群优化…

PSO优化问题

PSO import matplotlib.pyplot as plt import numpy as np import random as rd np.set_printoptions(precision3,suppressTrue)class PSO():"""用于求解最小值"""def __init__(self,pop_scale,dim,maxV,pop_bnd,maxiter):self.pop_scale pop_…