千家信息网

MySQL的用户和权限如何管理

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,下面讲讲关于MySQL的用户和权限如何管理,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL的用户和权限如何管理这篇文章你一定会有所受益。MySQL的用户账号: 用
千家信息网最后更新 2026年10月31日MySQL的用户和权限如何管理

下面讲讲关于MySQL的用户和权限如何管理,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL的用户和权限如何管理这篇文章你一定会有所受益。

MySQL的用户账号: 用户名@主机

主机格式:

  1. 主机名 www.node1.com


  2. IP: 172.16.139.2

    172.16.0.0/255.255.255

    192.16.%.%


  3. 通配符:172.16.%.%

%.node1.com


Mysql账号的唯一目的就是在用户连接MySQL云服务器时,进行用户的登录认证,而要在登录后进行一些数据访问、操作等,还要另外进行授权


MySQL进程在启动时会读取以下六个权限表


user:用户账号,全局权限

db:库级别权限

tables_priv:表级别权限

columns_priv:列级别权限

procs_priv:存储过程与存储函数相关权限

proxies_priv:代理用户权限


权限级别: 全局级别 库 表 列 存储过程和存储函数


触发器:主动数据库,当执行insert、delete、update时会自动触发另外自定义的操作;如向user表中插入数据时,定义往log表中插入时间值,往user表中插入数据。


创建一个叫做faker的用户,密码为123

>create user faker@'127.0.0.1' identified by '123';


mysql> show grants for faker@'127.0.0.1'; 查看faker在127.0.0.1的权限为usage,只能登陆和做简 单的查看

+----------------------------------------------+

| Grants for faker@127.0.0.1 |

+----------------------------------------------+

| GRANT USAGE ON *.* TO 'faker'@'127.0.0.1'

IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |


为用户授权:

user表中host列的值的意义

% 匹配所有主机

localhost localhost不会被解析成IP地址,直接通过UNIXsocket连接

127.0.0.1 会通过TCP/IP协议连接,并且只能在本机访问;

::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1


priv_level:

* 所有库

*.* 所有库的所有表

test.* test库下的所有表

test1 test1表

db_name.toutine_name 某个表的存储过程/存储函数


设置权限时必须给出以下信息

1,要授予的权限

2,被授予访问权限的数据库或表

3,用户名


grant和revoke可以在几个层次上控制访问权限

1,整个云服务器,使用 grant ALL 和revoke ALL (revolve收回权限)

2,整个数据库,使用on database.*

3,特点表,使用on database.table

4,特定的列

5,特定的存储过程

grant 命令 on 库.表 to user;


>grant select, insert, update, delete on testdb.* to faker@'%'

grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。


>grant select on testdb.* to common_user@'%'


>grant insert on testdb.* to common_user@'%'


>grant update on testdb.* to common_user@'%'


>grant delete on testdb.* to common_user@'%'


或者,用一条 MySQL 命令来替代:


>grant select, insert, update, delete on testdb.* to common_user@'%'


grant 数据库开发人员,创建表、索引、视图、存储过程、函数等权限。


grant 创建、修改、删除 MySQL 数据表结构权限。


>grant create on testdb.* to developer@'192.168.0.%';


>grant alter on testdb.* to developer@'192.168.0.%';


>grant drop on testdb.* to developer@'192.168.0.%';


grant 操作 MySQL 外键权限。


>grant references on testdb.* to developer@'192.168.0.%';


grant 操作 MySQL 临时表权限。


>grant create temporary tables on testdb.* to developer@'192.168.0.%';


grant 操作 MySQL 索引权限。


>grant index on testdb.* to developer@'192.168.0.%';


grant 操作 MySQL 视图、查看视图源代码 权限。


>grant create view on testdb.* to developer@'192.168.0.%';


>grant show view on testdb.* to developer@'192.168.0.%';


最后

>flush privileges;

刷新权限后,可能要重新登录才生效


删除用户

>drop user faker@'127.0.0.1'; 将faker用户删除


改用户名

>rename user faker@'127.0.0.1' to sky@'127.0.0.1';

Query OK, 0 rows affected (0.00 sec)


权限收回

>revoke 'select' on test.my from faker@'127.0.0.1';

收回faker用户在test库中my表的select权限


MySQL登录忘记密码怎么办?


[root@node1 ~]# vim /etc/init.d/mysqld

1.找到下面这行

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &


2.在上面行中加入 --skip-grant-tables(跳过认证)

3.在重启mysqld服务

4.最后重新登录不要密码就可以连接上去

对于以上MySQL的用户和权限如何管理相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

权限 用户 数据 存储 数据库 级别 过程 登录 主机 函数 管理 密码 视图 账号 服务 全局 命令 就是 服务器 用户名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 高科技互联网 互联网科技工作委员会毛军 互联网金融与金融科技 互联网 科技创业 互联网 的科技创新 嘟嘟瓜互联网科技 广州善班互联网科技 科技类的互联网平台 广州优美互联网科技 青海科技产业互联网发展 华中科技大学互联网的牛人 宇信科技在杭州互联网排第几 互联网安防科技感 本届互联网大会上的黑科技 北京天晋互联网科技有限公司 平安好医生打造互联网科技医疗 互联网企业和网络科技有限公司 六子台科技互联网展会 互联网 科技节活动 微视频大赛 科技平台互联网 互联网电商科技 中国科技互联网公司收入 世界互联网科技公司市值排名 成都互联网科技公司工作好不好 深圳市罗太互联网科技有限公司 沐思想互联网科技有限公司 云南省自由互联网科技有限公司 九思连强互联网电子科技有限公司 利用互联网等科技手段
0