MySQL用户和权限管理

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

MySQL账户管理

练习1:查看mysql数据库中的权限表

使用putty连接ubuntu服务器。输入以下命令查看mySQL中的权限表。

root@mySQL1:~# mysql -u root -p

Enter password:

mysql> use mysql;

mysql> show tables;

clip_image001

练习2:使用命令行创建mySQL用户

本练习你将使用putty连接到Ubuntu服务器,使用mysql工具查看mySQL用户,创建新用户。授予用户权限。在mysql数据库中user表存储了用户和全局权限

1. 查看用户

使用putty连接到UbuntuServer

root@ubuntuServer:~# mysql -u root -p

Enter password:

mysql> use mysql;

mysql> select user,host from user;

clip_image002

最好不要删除127.0.0.1和localhost,否则在服务器本地不能连接mySQL。

2. 使用create user创建新用户

使用CREATE USER创建新用户,没有赋予任何权限。

下面创建两个用户webuser,一个允许本地登录,一个允许192.168.80.网段能够登录,注意密码不一样。

mysql> create user 'webuser'@'localhost' identified by 'a1!';

mysql> create user 'webuser'@'192.168.80.%' identified by 'a2!';

创建不需要登录密码的用户,不需要identified by。

clip_image003

3. 使用grant授权用户并创建用户(创建mySQL管理员)

下面使用grant语句创建一个root用户,该用户可以在任何计算机登录,授予所有权限,所有数据库所有表,能够且能够授权。

mysql>grant all privileges on *.* to 'root'@'%' identified by 'a1!' with grant option;

mysql> flush privileges;

clip_image004

4. 重设用户密码

将'webuser'@'192.168.80.%'用户密码设置为123456

注意:mySQL用户webuser

mysql> set password for 'webuser'@'192.168.80.%'=password('123456');

练习3:mySQL授权

下面的练习,将会授权练习2创建的用户webuser@localhost对mySQL数据库对象的访问权限,权限由小变大。并验证权限。

MySQL权限级别

全局权限

数据库权限

表权限

列权限

1. 授予列权限

授予用户webuser@localhost能够查询schoolDB数据的所有表,只能更新TStudent表的sname和Email列。

授予用户能够更改数据库schoolDB.TStudent的Email,Class

mysql> grant select on schoolDB.* to 'webuser'@'localhost';

mysql> grant update(Email,Class) on schoolDB.TStudent to 'webuser'@'localhost';

mysql> flush privileges;

clip_image005

2. 验证授权

再打开Putty,使用root连接,登录mySQL使用webuser@localhost,验证权限。

字符集设置为UTF-8

clip_image006

使用webuser连接mysql

clip_image007

更改数据库,查询Tstudent表,可以看到能查询

clip_image008

更改姓名遭到失败

mysql> update TStudent set Sname='zhang' where StudentID='00010';

更改班级成功

mysql> update TStudent set Class='NET' where StudentID='00010';

clip_image009

插入记录和删除记录都被拒绝

clip_image010

这足以证明授权成功。

3. 授予表权限

授权'webuser'@'localhost'用户能够对数据schoolDB中Tstudent能够select,update,delete,insert权限,刷新权限。

mysql> grant select,update,delete,insert on schoolDB.* to 'webuser'@'localhost';

clip_image011

这次不用重新连接,直接验证能够插入成功。

mysql> use schoolDB;

mysql> insert TStudent (StudentID,sname) value ('00012','zhangjing');

mysql> delete from TStudent where studentID='00010';

clip_image012

创建一个新的表,遭到拒绝

mysql> create table webTB (sid int,sname varchar(10));

删除现有表,遭到拒绝

mysql> drop table TScore;

clip_image013

4. 授予数据权限

在root@localhost打开的窗口。执行以下命令。

授权'webuser'@'localhost'用户能够对数据库schoolDB完全控制。

mysql> grant all privileges on schoolDB.* to 'webuser'@'localhost';

mysql> flush privileges;

clip_image014

5. 验证数据库权限

在webuser@localhost登录,退出,重新登录。

可以创建表

可以删除表

clip_image015

创建数据库失败

mysql> create database webdb1;

clip_image016

6. 授予全局权限

在root@localhost登录的窗口,授予webuser@localhost为mysql数据库所有权限,即mySQL管理员。

mysql> grant all privileges on *.* to 'webuser'@'localhost';

mysql> flush privileges;

clip_image017

插入一条记录,拒绝。

7. 验证全局权限

在webuser@localhost打开的窗口。

退出,重新登录mySQL,创建数据库,能够成功。

clip_image018

练习4:查看授予的权限

使用root@localhost连接mySQL,查看授予的权限。

mysql> show grants for 'webuser'@'localhost';

clip_image019

练习5:取消授权

取消授予的权限

mysql> revoke update(Email,Class) on schoolDB.TStudent from 'webuser'@'localhost';

mysql> flush privileges;

clip_image020

再次查看权限,发现该用户的权限只剩下两条。

mysql> flush privileges;

mysql> show grants for 'webuser'@'localhost';

clip_image021

练习:6:使用图形界面查看设置的权限

使用mySQL Manager连接,可以创建用户,授权全局权限,表权限,列权限。

clip_image022

clip_image023

点击下图中clip_image024,可以看到所有用户,全局权限,表权限和列权限。

clip_image025

练习7:恢复root密码

忘记了root密码,可以更改配置文件,在[mysqld]段中加入一行“skip-grant-tables”,重启mySQL服务,可以使用root账号空密码登录mySQL。

sudo vi /etc/mysql/my.cnf

clip_image026

重启mySQL服务

root@ubuntuServer:~# /etc/init.d/mysql restart

再次登录不需要输入密码。

clip_image027

重设密码

mysql> use mysql;

mysql> update user set password=PASSWORD('123') where user='root';

clip_image028

编辑配置文件

注释掉

skip-grant-tables

重启mySQL服务

root@ubuntuServer:~# /etc/init.d/mysql restart

使用新密码登录

clip_image029




本文转自 onesthan 51CTO博客,原文链接:http://blog.51cto.com/91xueit/1138005,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
SQL 关系型数据库 MySQL
mysql用户权限设置
mysql用户权限设置
|
4月前
|
存储 关系型数据库 MySQL
mysql(三)用户权限管理
为什么要设置用户权限?MySQL设置用户管理权限的主要目的是为了确保数据库的安全性和数据的机密性。以下是一些原因。
78 1
mysql(三)用户权限管理
|
6月前
|
SQL 关系型数据库 MySQL
MySQL 数据控制语言(DCL):管理用户权限
MySQL 是一个强大的关系型数据库管理系统,提供了丰富的功能和选项来管理数据库和用户。数据库管理员(DBA)通常使用数据控制语言(Data Control Language,简称 DCL)来管理用户的权限和访问。 本文将详细介绍 MySQL DCL 的基本概念,包括如何创建用户、授权和撤销权限等,同时提供示例代码以帮助您更好地理解。
108 2
|
2月前
|
安全 关系型数据库 MySQL
如何实现MySQL的权限管理
如何实现MySQL的权限管理
21 2
|
3月前
|
SQL 关系型数据库 MySQL
MySQL用户管理 用户权限控制(DCL语句)
MySQL用户管理 用户权限控制(DCL语句)
30 0
|
8月前
|
SQL 关系型数据库 MySQL
第03章 用户和权限管理【1.MySQL架构篇】【MySQL高级】2
第03章 用户和权限管理【1.MySQL架构篇】【MySQL高级】2
87 0
|
8月前
|
SQL 关系型数据库 MySQL
第03章 用户和权限管理【1.MySQL架构篇】【MySQL高级】1
第03章 用户和权限管理【1.MySQL架构篇】【MySQL高级】1
79 0
|
9月前
|
存储 关系型数据库 MySQL
MySQL_11 用户管理和权限管理
MySQL 第十一节 用户管理和权限管理 内容分享。
66 0
|
9月前
|
关系型数据库 MySQL 数据安全/隐私保护
mysql权限管理查看用户权限
mysql权限管理查看用户权限
89 0
|
6月前
|
SQL 安全 关系型数据库
MySQL操作之用户管理权限管理:(DC)(五)
MySQL操作之用户管理权限管理:(DC)(五)
36 0