热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL知识整理2—用户管理和权限设置

用户权限管理主要有以下作用:1.可以限制用户访问哪些库、哪些表2.可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作3.可以限制用户登


 

用户权限管理主要有以下作用: 1. 可以限制用户访问哪些库、哪些表 2. 可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作 3. 可以限制用户登录的IP或域名 4. 可以限制用户自己的权限是否可以授权给别的用户




  • 查看用户



  • 创建用户



  • 授权用户



  • 删除用户



  • 设置与更改用户密码



  • 撤销用户权限




1.查看用户



查看用户并没有直接的SQL语句,而是进入 mysql数据库的user表(这个mysql库和user表都是一开始就有的),直接用 select * from user,来查看有什么用户


use mysql;
select * from user;

技术分享图片


可以导出形成CSV文件进行查看:





技术分享图片





如上图,列出数据库所有的用户及权限



用户详情的权限列表请参考MySQL官网说明:



https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html

 



2.创建用户



CREATE USER ‘user_name‘@‘host‘ IDENTIFIED BY ‘password‘;




  • user_name:要创建用户的名字



  • host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填‘localhost‘,如果允许从远程登陆,则填 ‘%‘



  • password:新创建用户的登陆数据库密码,如果没密码可以不写。




例:




create user ‘aaa‘ @ ‘localhost‘ identified by ‘123456‘;
//表示创建的新用户,名为aaa,这个新用户密码为123456,只允许本机登陆
create user ‘bbb‘ @ ‘%‘ identified by ‘123456‘;
//表示新创建的用户,名为bbb,这个用户密码为123456,可以从其他电脑远程登陆mysql所在服务器
create user ‘ccc‘ @ ‘%‘;
//表示新创建的用户ccc,没有密码,可以从其他电脑远程登陆

技术分享图片

可见创建了用户tom,通配符‘%‘表示可在远程登陆,无密码

3.授权用户

GRANT privileges on databasename.tablename to ‘username‘@‘host‘;




  • privileges:表示要授予什么权力,例如可以有 select,insert,delete,update等,如果要授予全部权力,则填 ALL ;



  • databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部。



  • ‘username‘@‘host‘:表示授权给哪个用户。




例:


grant select,insert on zje.zje to ‘aaa‘@‘%‘;
//表示给用户aaa授权,让aaa能给zje库中的zje表 实行 insert 和 select。
grant all on *.* to ‘aaa‘@‘%‘;
//表示给用户aaa授权,让aaa能给所有库所有表实行所有的权力。
//再看用户列表,可以发现权限都变成 Y了。

注意:用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上with grant option ;比如:

grant all on *.* to ‘aaa‘@‘%‘ with grant option;



4.删除用户

命令:drop user ‘user_name‘@‘host‘;
例: drop user ‘tom‘@‘%‘; //表示删除用户aaa;

5.设置与更改用户密码

set password for ‘username‘@‘host‘ = password(‘newpassword‘);
如果是设置当前用户的密码:set password = password(‘newpassword‘);
如:set password = password(‘123456‘);

6.撤销用户权限

revoke privileges on database.tablename from ‘username‘@‘host‘;
例如:revoke select on *.* from ‘zje‘@‘%‘;

7.用户重命名

rename user ‘tom‘@‘%‘ to ‘tomao‘@‘%‘;

8.刷新权限

flush privileges;

 

 



推荐阅读
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
author-avatar
女女的家_747
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有