0

0

总结分享MySQL中的用户创建与权限管理

WBOY

WBOY

发布时间:2022-09-02 16:59:46

|

2402人浏览过

|

来源于脚本之家

转载

推荐学习:mysql视频教程

一、用户管理

mysql库里有个user表可以查看已经创建的用户

1.创建MySQL用户

注意:MySQL中不能单纯通过用户名来说明用户,必须要加上主机。如hhy@10.1.1.1

基本语法:

kgogoprime
kgogoprime

KGOGOMall 是一套采用 Php + MySql 开发的基于 WEB 应用的 B/S 架构的B2C网上商店系统。具有完善的商品管理、订单管理、销售统计、新闻管理、结算系统、税率系统、模板系统、搜索引擎优化,数据备份恢复,会员积分折扣功能,不同的会员有不同的折扣,支持多语言,模板和代码分离等,轻松创建属于自己的个性化用户界面。主要面向企业和大中型网商提供最佳保障,最大化满足客户目前及今后的独立

下载
mysql> create user '用户名'@'被允许连接的主机名称或主机的IP地址' identified by '用户密码';
mysql> select user,host from mysql.user;

案例:创建一个MySQL账号,用户名:hhy,用户密码:123

mysql> create user 'hhy'@'localhost' identified by '123';
/*或*/
mysql> create user 'hhy'@'127.0.0.1' identified by '123';

案例:创建一个MySQL账号(要求开通远程连接),主机IP地址:192.1668.44.110,用户名:test,用户密码:123

mysql> create user 'test'@'192.1668.44.110' identified by '123';

测试:在IP地址为192.168.44.110的主机上

# yum install mysql -y
# mysql -h 192.168.44.110 -P 3306 -uharry -p
Enter password:123

选项说明:192.168.44.110 :MySQL服务器端的IP地址

yum安装mysql代表安装的是MySQL的客户端
yum安装mysql-server:代表安装的是MySQL的服务器端

案例:创建一个MySQL账号(要求开通远程连接),主机IP的网段:10.1.1.0,用户名:jack,用户密码:123

create user 'jack'@'192.168.44.%' identified by '123'

案例:创建一个MySQL账号(要求开通远程连接),要求面向所有主机开放,用户名:root,用户密码:123

create user 'root'@'%' identified by '123';

2. 删除MySQL用户

基本用户:

mysql> drop user '用户名'@'主机名称或主机的IP地址';

特别说明:

如果在删除用户时没有指定主机的名称或主机的IP地址,则默认删除这个账号的所有信息。

案例:删除hhy这个账号

drop user 'hhy'@'localhost';

案例:删除jack这个账号

drop user 'jack'@'192.168.44.%';

案例:创建两个harry账号(localhost/10.1.1.23),然后删除其中的某个

mysql> create user 'harry'@'localhost' identified by '123';
mysql> create user 'harry'@'192.168.44.110' identified 

mysql> drop user 'harry'@'192.168.44.110';

删除MySQL账号的另外一种方式

mysql> delete from mysql.user where user='root' and host='%';
mysql> flush privileges;

3. 修改MySQL用户

特别说明:MySQL用户重命名通常可以更改两部分,一部分是用户的名称,一部分是被允许访问的主机名称或主机的IP地址。

基本语法:

mysql> rename user 旧用户信息 to 新用户信息;

案例:把用户’root’@'%‘更改为’root’@‘10.1.1.%’

mysql> rename user 'root'@'%' to 'root'@'10.1.1.%';

案例:把’harry’@‘localhost’更名为’hhy’@‘localhost’

mysql> create user 'tom'@'localhost' identified by '123';
mysql> rename user 'tom'@'localhost' to 'hhy'@'localhost';

使用update语句更新用户信息

mysql> update mysql.user set user='hhy',host='localhost' where user='tom' and host='localhost';

mysql> flush privileges;

二、权限管理

1. 权限说明

所有权限说明

USAGE	无权限,只有登录数据库,只可以使用test或test_*数据库
ALL		所有权限
以下权限为指定权限
select/update/delete/super/replication slave/reload...
with grant option 选项表示允许把自己的权限授予其它用户或者从其他用户收回自己的权限

默认情况下,分配权限时如果没有指定with grant option,代表这个用户不能下发权限给其他用户,但是这个权限分配不能超过自身权限。

2. 权限保存位置(了解)

  • mysql.user:所有mysql用户的账号和密码,以及用户对全库全表权限(*.*)
  • mysql.db :非mysql库的授权都保存在此(db.*)
  • mysql.table_priv :某库某表的授权(db.table)
  • mysql.columns_priv :某库某表某列的授权(db.table.col1)
  • mysql.procs_priv :某库存储过程的授权

3. 给用户授权

创建数据库表:

create database java;
use java;
create table tb_student(
	id mediumint not null auto_increment,
	name varchar(20),
	age tinyint unsigned default 0,
	gender enum('男','女'),
	address varchar(255),
	primary key(id)
) engine=innodb default charset=utf8;

insert into tb_student values (null,'刘备',33,'男','湖北省武汉市');
insert into tb_student values (null,'貂蝉',18,'女','湖南省长沙市');
insert into tb_student values (null,'关羽',32,'男','湖北省荆州市');
insert into tb_student values (null,'大乔',20,'女','河南省漯河市');
insert into tb_student values (null,'赵云',25,'男','河北省石家庄市');
insert into tb_student values (null,'小乔',18,'女','湖北省荆州市');

基本语法:

mysql> grant 权限1,权限2 on 库.表 to 用户@主机
mysql> grant 权限(列1,列2,...) on 库.表 to 用户@主机

库.表表示方法:*.*代表所有数据库的所有数据表,db_itheima.*代表db_itheima数据库中的所有数据表,db_itheima.tb_admin,代表db_itheima数据库中的tb_admin表

案例:给thhy账号分配java数据库的查询权限

mysql> grant select on java.* to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

案例:给hehanyu账号分配java.tb_student数据表的权限(要求只能更改age字段)

mysql> grant update(age) on java.tb_student to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

案例:添加一个root@%账号,然后分配所有权限

create user 'root'@'%' identified by '123';
grant all on *.* to 'root'@'%';
flush privileges;

4. 查询用户权限

查询当前用户权限:

mysql> show grants;

查询其他用户权限:

mysql> show grants for '用户名称'@'授权的主机名称或IP地址';

5. with grant option选项

mysql> grant all on *.* to 'amy'@'10.1.1.%' identified by '123' with grant option;
mysql> grant all on *.* to 'harry'@'10.1.1.%' identified by '123';

如以上命令所示:amy拥有下发权限的功能,而harry不具备下发权限的功能。

如果grant授权时没有with grant option选项,则其无法为其他用户授权。

6.revoke回收权限

基本语法:

revoke 权限 on 库.表 from 用户;
查看hehanyu用户权限
mysql> show grants for 'hehanyu'@'192.168.44.%';
撤消指定的权限
mysql> revoke update on java.tb_student from 'tom'@'192.168.44.%';
撤消所有的权限
mysql> revoke select on java.* from 'tom'@'192.168.44.%';

推荐学习:mysql视频教程

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

1

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

5

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

30

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

3

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 777人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号