MySQL用户管理

一:权限表

1:user表

User表是MySQL中最重要的一个权限表,记录允许连接到服务器的帐号信息,里面的权限是全局级的。

2:db表和host表

db表和host表是MySQL数据中非常重要的权限表。db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。host表中存储了某个主机对数据库的操作权限,配合db权限表对给定主机上数据库级操作权限做更细致地控制。

3:tables_priv表和columns_priv表

tables_priv表用来对表设置操作权限。

columns_priv表用来对表的某一列设置权限。

4:procs_priv表

procs_priv表可以对存储过程和存储函数设置操作权限。

二:账户管理

1:登录和退出MySQL服务器

mysql命令的常用参数以及登录和退出mysql服务器的方法

//使用root用户登录到本地mysql服务器的test库中
mysql -u root -p -h localhost test

2:新建普通用户

(1)使用CREATE USER或GRANT语句

CREATE USER 'Jeffrey'@'localhost' IDENTIFIED BY 'mypass';
GRANT SELECT,UPDATE  ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'testpwd';    /*创建账户并授予权限*/
SELECT Host,User,Select_priv,Update_priv, FROM mysql.user where user='testUser';  /*查看账户权限信息*/

(2)直接操作MySQL授权表

使用INSERT创建一个新账户,其用户名称为customer1,主机名称为localhost,密码为customer1:

INSERT INTO user (Host,User,Password) VALUES('localhost','customer1',PASSWORD('customer1'));

3:删除普通用户

(1)使用DROP USER语句删除用户

DROP USER 'jeffrey'@'localhost';

(2)使用DELETE语句删除用户

DELETE FROM mysql.user WHERE host='localhost' and user='customer1';

4:root用户修改自己的密码

(1)使用mysqladmin命令在命令行指定新密码

mysqladmin -u root -p password "123456"

(2)修改mysql数据库的user表

UPDATE mysql.user set Password=password("rootpwd2") WHERE User="root" and Host="localhost";

(3)使用SET语句修改root用户的密码

SET PASSWORD=password("rootpwd3");

5:root用户修改普通用户密码

(1)使用SET语句修改普通用户的密码

使用SET语句将testUser用户的密码修改为"newpwd":

SET PASSWORD FOR 'testUser'@'localhost'=password("newpwd");

(2)使用UPDATE语句修改普通用户的密码

使用UPDATE语句将testUser用户的密码修改为"newpwd2":

UPDATE   mysql.user set Password=PASSWORD("newpwd2") WHERE User="testUser" and Host="localhost";

(3)使用GRANT语句修改普通用户密码

GRANT USAGE ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'newpwd3';

6:普通用户修改密码

普通用户登录MySQL服务器后,通过SET语句设置自己的密码。

SET PASSWORD = PASSWORD('newpassword');

7:root用户密码丢失的解决办法

(1)使用--skip-grant-tables选项启动MySQL服务

mysql start-mysqld --skip-grant-tables

(2)使用root用户登录和重新设置密码

mysql -u root
update mysql.user set password=password('mypass') where user='root' and host='localhost';

(3)加载权限表

flush privileges;

三:权限管理

1.授权

授权就是为某个用户授于权限。合理的授权可以保证数据库的安全。MySQL中可以使用GRANT语句为用户授于权限。

MySQL> GRANT SELECT,INSERT ON *.* TO 'grantUser'@'localhost'  IDENTIFIED BY 'grantpwd' WITH GRANT OPTION;
Query OK, 0 rows affected (0.03 sec)

2:收回权限

收回权限就是取消已经赋于用户的某些权限。收回用户不必要的权限可以在一定程度上保证系统的安全性。MySQL中使用REVOKE语句取消用户的某些权限。

MySQL> REVOKE UPDATE ON *.* FROM 'testUser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

3:查看权限

SHOW GRANTS语句可以显示指定用户的权限信息,使用SHOW GRANT语句查看账户信息。

MySQL> SHOW GRANTS FOR 'testUser'@'localhost';
相关推荐
Rookie也要加油29 分钟前
01_SQLite
数据库·sqlite
liuxin3344556633 分钟前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。1 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec1 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa2 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke2 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D2 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
小宇成长录2 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份
团儿.3 小时前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
程序猿小D3 小时前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa