SQL之用户管理——权限与用户

目录

[1. 用户相关](#1. 用户相关)

[1.1 查看已存在用户的信息](#1.1 查看已存在用户的信息)

[1.2 创建新用户](#1.2 创建新用户)

[1.3 删除用户](#1.3 删除用户)

[1.4 修改用户登入密码](#1.4 修改用户登入密码)

[2. 权限相关](#2. 权限相关)

[2.1 给用户权限](#2.1 给用户权限)

[2.2 回收权限](#2.2 回收权限)

我们在MySQL的学习过程中一开始基本上都是使用root用户来进行各种操作的,但是其实这样是不好的,因为我们在以后工作的时候是不可能给你root用户来进行操作的,所以我们在这里要提前适应普通用户。

1. 用户相关

我们首先要学会查看用户的信息,再我看来这是第一步,接着我们在学会创建,销毁用户之类的操作。

1.1 查看已存在用户的信息

sql 复制代码
use mysql;
sql 复制代码
select host,user,authentication_string from user;

我们需要使用到上面两条指令来进行查看信息。

不知道各位有没有这个疑惑,就是我是查看用户信息又不是所有某一个数据库,为什么需要先use mysql呢?这是因为在mysql这个数据库系统里面,用户相关的各种信息也是存放在表里面的。

各位仔细看下面这张图片,这里面有三个用户,这三个用户都是系统自带的,分别是:

  1. root@localhost: MySQL 的超级管理员用户,拥有最高权限(可以操作所有数据库、表、权限等),是我们日常管理数据库时常用的账号。

  2. mysql.session@localhost: MySQL 内部服务使用的用户,主要用于系统进程之间的通信(比如 MySQL 的插件、内部管理操作),不能手动登录使用。

  3. mysql.sys@localhost: MySQL 5.7 及以上版本新增的用户,用于管理系统视图(sys schema)(sys 库是 MySQL 提供的简化性能监控、运维管理的视图集合),同样是内部专用,不能手动登录。

字段解释:

host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆

user: 用户名

authentication_string: 用户密码通过password函数加密后的

*_priv: 用户拥有的权限

1.2 创建新用户

代码:

sql 复制代码
create user '用户名'@'登陆主机/ip' identified by '密码';

我们通过上面的代码就可以创建一个新用户。

在我们接下来的学习中我们创建新用户都是使用root账号来进行创建的,但是我们不可以误以为只有root账号可以创建新用户,有cheate user权限的普通用户也可以创建新用户,这个我们在后面会说到。

我们看下面这张图,这样我们就创建好一个用户。

PS:当我们使用root账号创建一个新用户的时候,这个新用户默认是没有权限的,也就是什么都做不了的,因为创建库和创建表以及select都是需要一定的权限的。

这边想要额外提一下,就是我们的那个登入主机的位置如果选的是localhost的话就是说这个账号只支持本地登入,也就是只有创建这个账号的这台设备可以登入这个用户。

如果是想要某一台设备可以登入的话,那么就在这个位置输入那台设备的ip。

如果是想要什么设备只要知道密码都可以登入的话,那么我们就在这个位置直接输入一个'%'就可以了。

1.3 删除用户

代码:

sql 复制代码
drop user '用户名'@'主机名'

我们看,这样我们就可以把叫做'1'的本地登入的用户给删除了。

这一步是不需要密码的,也就是不需要'1'的密码,可以直接删除。

1.4 修改用户登入密码

这个的话又比较不同了,因为在这里可以分为用户自己修改密码和root用户来修改普通用户的密码。

用户自己修改密码:

sql 复制代码
set password=password('新的密码');

如果是普通用户自己修改密码的话,我们需要先登入那个账号。

root用户来修改密码:

sql 复制代码
set password for '用户名'@'主机名'=password('新的密码');

root的话直接指定需要修改哪一个就好了。

2. 权限相关

首先我们需要知道什么叫做权限。在MySQL中什么都是需要权限的,无论是创建查看数据库数据表或者创建删除用户,这些都是需要相应的权限我们才可以做到的。

相关的权限:

一、全局权限(作用于所有数据库)

全局权限存储在mysql.user表中,授权时用ON *.*指定:

  • ALL PRIVILEGES:所有权限(除GRANT OPTION外的全部权限,加上WITH GRANT OPTION则包含授权权限)。

  • CREATE USER:创建 / 删除用户、修改用户密码。

  • DROP USER:删除用户。

  • SUPER:超级权限(如 kill 进程、修改全局变量、日志管理)。

  • SHOW DATABASES:查看所有数据库列表。

  • RELOAD:重新加载权限表、刷新日志等。

  • SHUTDOWN:关闭 MySQL 服务。

  • PROCESS:查看所有进程(SHOW PROCESSLIST)。

  • FILE:读写服务器本地文件(如LOAD DATA INFILE)。

二、数据库权限(作用于指定数据库)

数据库权限存储在mysql.db表中,授权时用ON 数据库名.*指定:

  • CREATE:创建新数据库或表。

  • DROP:删除数据库或表。

  • ALTER:修改表结构(如ALTER TABLE)。

  • INDEX:创建 / 删除索引。

  • INSERT:插入数据到表。

  • DELETE:删除表中数据。

  • UPDATE:更新表中数据。

  • SELECT:查询表中数据。

  • REFERENCES:创建外键约束。

  • CREATE TEMPORARY TABLES:创建临时表。

  • LOCK TABLES:锁定表(用于事务)。

  • EXECUTE:执行存储过程 / 函数。

三、表权限(作用于指定表)

表权限存储在mysql.tables_priv表中,授权时用ON 数据库名.表名指定:

  • SELECT/INSERT/UPDATE/DELETE(同数据库权限,但仅作用于单表)。

  • ALTER:修改该表结构。

  • INDEX:该表的索引操作。

  • CREATE VIEW:基于该表创建视图。

  • SHOW VIEW:查看该表的视图定义。

  • TRIGGER:创建 / 触发该表的触发器。

四、列权限(作用于表中指定列)

列权限存储在mysql.columns_priv表中,授权时需指定列(如ON 库.表 (列1,列2)):

  • 仅支持SELECT/INSERT/UPDATE(对指定列的操作权限)。

五、存储对象权限(作用于存储过程 / 函数 / 视图)

  • EXECUTE:执行指定存储过程 / 函数。

  • ALTER ROUTINE:修改 / 删除指定存储过程 / 函数。

  • CREATE ROUTINE:创建存储过程 / 函数。

  • CREATE VIEW/SHOW VIEW:视图的创建 / 查看权限。

2.1 给用户权限

代码:

sql 复制代码
GRANT ALTER ON *.* TO '用户名'@'登录位置';
sql 复制代码
grant all [privileges] on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']
sql 复制代码
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']

第一条代码的意思是授予一个用户修改所有表的权限。

第二个给指定用户授予 "指定库 / 对象" 的全部操作权限。

第三条是给一个用户关于某个库的权限。

identified by是可选, 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。

2.2 回收权限

我们可以给一个用户权限,同时也可以回收用户的权限。

代码:

sql 复制代码
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
相关推荐
TDengine (老段)7 分钟前
TDengine Python 连接器入门指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据
亚古数据23 分钟前
亚古数据:查询斯里兰卡公司可以获取什么文件和信息?
大数据·亚古数据·斯里兰卡公司查询
萧曵 丶30 分钟前
事务ACID特性详解
数据库·事务·acid
WLJT12312312332 分钟前
守护自然与滋养民生的绿色之路
大数据·安全
min1811234561 小时前
PC端零基础跨职能流程图制作教程
大数据·人工智能·信息可视化·架构·流程图
静听松涛1331 小时前
中文PC端多人协作泳道图制作平台
大数据·论文阅读·人工智能·搜索引擎·架构·流程图·软件工程
kejiayuan1 小时前
CTE更易懂的SQL风格
数据库·sql
kaico20181 小时前
MySQL的索引
数据库·mysql
黄焖鸡能干四碗2 小时前
智能制造工业大数据应用及探索方案(PPT文件)
大数据·运维·人工智能·制造·需求分析
世岩清上2 小时前
乡村振兴主题展厅本土化材料运用与地域文化施工表达
大数据·人工智能·乡村振兴·展厅