iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中的用户创建与权限管理怎么实现
  • 905
分享到

MySQL中的用户创建与权限管理怎么实现

2024-04-02 19:04:59 905人浏览 泡泡鱼
摘要

这篇文章主要讲解了“Mysql中的用户创建与权限管理怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中的用户创建与权限管理怎么实现”吧!

这篇文章主要讲解了“Mysql中的用户创建与权限管理怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中的用户创建与权限管理怎么实现”吧!

一、用户管理

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

1.创建MySQL用户

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

基本语法:

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中的用户创建与权限管理怎么实现”的内容了,经过本文的学习后,相信大家对MySQL中的用户创建与权限管理怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中的用户创建与权限管理怎么实现

本文链接: https://www.lsjlt.com/news/74169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql中外码怎么设置
    sql 中外码设置步骤:确定父表和子表。在子表中创建外码列,引用父表主键。使用 foreign key 约束将外码列链接到父表主键。指定引用动作,以处理父表数据更改时的子表数据操作。 ...
    99+
    2024-05-15
  • sql中having是什么
    having 子句用于过滤分组结果,应用于分组后的数据集。它与 where 子句类似,但基于分组结果而不是原始数据。用法:1. 过滤分组后的聚合值。2. 根据分组后的...
    99+
    2024-05-15
  • 在sql中空值用什么表示
    在 sql 中,空值表示未知或不存在的值,可使用 null、空字符串或特殊值表示。处理空值的方法包括使用操作符(is null/is not null)、coalesce 函数(返回第一...
    99+
    2024-05-15
    oracle
  • sql中number什么意思
    sql 中的 number 类型用于存储数值数据,包括小数和整数,特别适合货币、度量和科学数据。其精度由 scale(小数点位数)和 precision(整数字段和小数字段总位数)决定。...
    99+
    2024-05-15
  • sql中空值赋值为0怎么写
    可以通过使用 coalesce() 函数将 sql 中的空值替换为指定值(如 0)。coalesce() 的语法为 coalesce(expression, replacement),其...
    99+
    2024-05-15
  • sql中revoke语句的功能
    revoke 语句用于撤销指定用户或角色的权限或角色成员资格。可撤销的权限包括 select、insert、update、delete 等,撤销的对象类型包括表、视图、存储过程...
    99+
    2024-05-15
    敏感数据
  • sql中REVOKE是什么意思
    revoke 是 sql 中用于撤销用户或角色对数据库对象权限的命令。它通过撤销权限类型、对象级别和目标权限来实现:权限类型:撤销 select、insert、update、d...
    99+
    2024-05-15
  • sql中sp是什么意思
    sql中的sp是存储过程的缩写,它是一种预编译的、已命名的sql语句块,存储在数据库中,可以被用户通过简单命令调用。存储过程的特点有:可重用性、模块化、性能优化、安全性、事务支持。存储过...
    99+
    2024-05-15
    敏感数据
  • sql中references是什么意思
    sql 中的 references 关键字用于在外键约束中定义表之间的父-子关系。外键约束确保子表中的行都引用父表中存在的行,从而维护数据完整性。references 语法的格式为:fo...
    99+
    2024-05-15
  • sql中判断字段为空怎么写
    sql 中可通过 4 种方法判断字段是否为空:1)is null 运算符;2)is not null 运算符;3)coalesce() 函数;4)case 语句。例如,查询所有 colu...
    99+
    2024-05-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作