当前位置: 首页 > news >正文

MySQL用户管理 - 实践

1.用户信息

MySQL中的用户,都存储在数据库的user表中。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
|//......            |
| mysql              |
+--------------------+
10 rows in set (0.00 sec)
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
|//......                                              |
| user                                                 |
+------------------------------------------------------+
38 rows in set (0.00 sec)

查看user表内容

mysql> select * from user\G;
//自行进行查看

mysql> select USER, HOST, authentication_string from user;
+------------------+-----------+------------------------------------------------------------------------+
| USER             | HOST      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *E092E64E0BD5C6924B0E56A4F4D155051CF2FD                                |
+------------------+-----------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

host字段:表示用户可以从哪一个主机登录,localhost表示只能本机登录

user:用户名

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

_priv:用户拥有的权限

MySQL允许创建多个用户,这些用户都为普通用户,root可以创建账号,创建账号需要设置用户名,从那里登录,密码。然后就会把这些信息作为数据插入到user表中。

创建用户

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

创建本地用户

-- 创建只允许本地登录的用户
CREATE USER 'localuser'@'localhost' IDENTIFIED BY 'password';

-- 创建允许本地socket和TCP/IP连接的用户
CREATE USER 'localuser'@'127.0.0.1' IDENTIFIED BY 'password';

本地是mysql机器内连接

权限刷新

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

登录创建的账号

u后面是用户名,p就是要密码

这个账号不能远程登录,host的值是localhost,只能本地登录,在MySQL上登录,不能跨网络登录。

删除用户

第一种

不安全,可能留下权限残留

delete from user where USER='zymm'

第二种

自动清理相关权限

-- 删除所有主机上的 lfz 用户
DROP USER IF EXISTS 'zymm'@'localhost', 'zymm'@'%';

创建远程登录的账号

使用  % 符号代表可以从任意主机进行登入

mysql> create user 'zymm'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> select USER, HOST, authentication_string from user;
+------------------+-----------+------------------------------------------------------------------------+
| USER             | HOST      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| zymm              | %         | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *E092E64E0BD5C6924B0E56A4F4D155051DFCF2FD                              |
+------------------+-----------+------------------------------------------------------------------------+
5 rows in set (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

window系统装了mysql就可以在命令提示符里打开mysql。

修改用户密码

用户自己修改密码

set password = password('新的密码');

root修改密码

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

数据库权限

权限

上下文

CREATE

Create_priv

数据库、表或索引

DROP

Drop_priv

数据库或表

GRANT OPTION

Grant_priv

数据库、表或存储的程序

REFERENCES

References_priv

数据库或表

ALTER

Alter_priv

DELETE

Delete_priv

INDEX

Index_priv

INSERT

Insert_priv

SELECT

Select_priv

UPDATE

Update_priv

CREATE VIEW

Create_view_priv

视图

SHOW VIEW

Show_view_priv

视图

ALTER ROUTINE

Alter_routine_priv

保存的程序

CREATE ROUTINE

Create_routine_priv

保存的程序

EXECUTE

Execute_priv

保存的程序

FILE

File_priv

服务器主机上的文件访问

CREATE TEMPORARY TABLES

Create_tmp_table_priv

服务器管理

LOCK TABLES

Lock_tables_priv

服务器管理

CREATE USER

Create_user_priv

服务器管理

PROCESS

Process_priv

服务器管理

RELOAD

Reload_priv

服务器管理

REPLICATION CLIENT

Repl_client_priv

服务器管理

REPLICATION SLAVE

Repl_slave_priv

服务器管理

SHOW DATABASES

Show_db_priv

服务器管理

SHUTDOWN

Shutdown_priv

服务器管理

SUPER

Super_priv

服务器管理

授权操作

grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码'];

示例

-- 授予所有数据库的所有权限(类似root)
GRANT ALL PRIVILEGES ON *.* TO 'superuser'@'localhost' IDENTIFIED BY 'password';

-- 授予所有权限并允许远程连接
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'Admin@123';

回收权限

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

示例

all和all privileges是一个意思,后者规范

-- 回收某个用户的所有数据库权限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'olduser'@'localhost';

-- 回收特定数据库的所有权限
REVOKE ALL PRIVILEGES ON `mydb`.* FROM 'dbuser'@'%';

http://www.jsqmd.com/news/32265/

相关文章:

  • LLM 时代,DataAgent WhaleTunnel 如何将数据库变更瞬时 “转译” 为洞察?
  • 2025年靠谱的连锁泡菜加盟公司排名,泡菜加盟正规公司推荐
  • 特氟龙喷涂厂家TOP5推荐:特氟龙喷涂厂家推荐指南
  • 如何处理旧 iPhone:安全地回收或重新利用 - 实践
  • 【Android】一种应用霸屏方式:设置固定应用
  • 测试2网站收藏 - Su
  • 2025年密闭冷却塔品牌排名推荐:密闭冷却塔加工厂价格哪家合理
  • 2025年深圳巨量竞价开户公司权威推荐榜单:爱采购开户/爱采购运营/巨量推广源头公司精选
  • System Exec.vi
  • HR内耗终结者:Moka People实现招聘、人事、薪酬全流程数据一体化,提效200%
  • 每周读书与学习-JMeter主要元件详细介绍(四)再谈取样器
  • 2025年济南靠谱龙工叉车公司推荐,专业龙工叉车平台全解析
  • AI|AI优化企业新榜单与选择指南 - 二当家
  • 多存储文件列表神器Alist:轻松管理你的云端资源
  • 电阻作用
  • 2025年仓储叉车服务商推荐排行榜白皮书:仓储叉车哪个性价比高
  • 20232311 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 团队项目第一次作业
  • MySQL 查询全局时区和会话时区设置
  • 2025年轻骨料混凝土实力厂家权威推荐榜单:轻骨料混凝土LC5.0/轻骨料混凝土LC7.5/发泡混凝土源头厂家精选
  • uni-app x开发商城系统,商品详情轮播图,样式结构,数据渲染
  • 机器学习经典算法——逻辑回归 - 实践
  • 095_尚硅谷_实现while和dowhile控制
  • 告别“功能堆砌陷阱”,2026年企业HR系统选型应聚焦价值而非价格
  • 线程和 Parallel.ForEach 的核心区别
  • 测试环境SQLSERVER数据库出现间歇性无法访问的问题
  • 2025年有实力的AI搜索优化品牌企业排行,专业AI搜索优化机构推荐
  • 2025年五大文物展柜制造企业推荐,文物展柜来样定制企业全解析
  • 2025年市面上锥芯板源头厂家排行榜前十强深度解析
  • 2025年市面上碳晶板品牌推荐排行榜前十强及行业洞察