Mysql用户管理


默认数据库

在安装mysql数据库后,并没有新建数据库,但其中有默认的四个数据库,各有作用。
在这里插入图片描述
四个数据库的作用:
information_schema:

  • 这是一个虚拟的数据库,它提供了访问数据库元数据的标准化方式。
  • 它包含了诸如数据库、表、列、索引、权限等各种数据库对象的信息。
  • 开发人员和管理员可以通过查询 information_schema 库来获取数据库的结构和状态信息。

mysql:

  • 这是 MySQL 的系统数据库,用于存储 MySQL 服务器的内部数据和配置信息。
  • 它包含了用户账户、权限、存储过程、复制状态等重要的元数据。
  • 这个数据库通常只有 MySQL 管理员才能访问和修改。

performance_schema:

  • 这是 MySQL 5.5 及以后版本引入的一个用于监控 MySQL 服务器性能的数据库。
  • 它提供了大量关于服务器内部运行情况的统计数据,如事件、锁、内存使用等。
  • 开发人员和 DBA 可以利用 performance_schema 来诊断和优化数据库性能。

sys:

  • 这是一个基于 performance_schema 的视图集合,提供了一组方便的视图和函数。
  • 它为常见的性能诊断和优化任务提供了更高级别的访问接口。
  • 系统管理员可以使用 sys 库中的视图更方便地分析和诊断数据库的性能问题。

总之, information_schema 提供了标准化的元数据访问,mysql 负责存储 MySQL 内部的系统信息,performance_schema 用于性能监控,而 sys 则是在 performance_schema 基础上提供了更易用的视图和函数。这四个数据库共同构成了 MySQL 数据库管理和优化的基础设施。

存放用户信息的表

mysql的用户,放在mysql数据库中的user表中。

select user,host,authentication_string from mysql.user;

在这里插入图片描述
查看当前使用用户

select user();

新建用户

格式:

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

‘用户名’:指定将创建的用户名。
‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用SELECT PASSWORD(‘密码’);获取密文,再在语句中添加 PASSWORD ‘密文’;若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

例子:

mysql  -u用户名  -p密码   -h远程主机  -P端口号
远程登录格式
create user cxk@'192.168.%.%';   
建立远程登录用户
create user cxk@'192.168.232.%' identified by '123123';   
可以后面加密码

在这里插入图片描述

修改用户名称

格式:

rename user '旧名字' to '新名字;
rename user 'cxk@192.168.232.%'@'%' to 'lisi@192.168.232.%'@'%'

删除用户

drop  user '用户名';

修改用户密码

set global validate_password_policy=0;
set global validate_password_length=1;
修改密码策略,可以使用简单密码。

格式:

SET PASSWORD = PASSWORD('abc123'); 
只能给当前用户修改密码。
set password for '用户' = password('密码'); 
给其他用户修改密码。

在这里插入图片描述

破解密码

修改配置文件

vim /etc/my.cnf
[mysqld]
skip-grant-tables 跳过验证
数据库的单用户模式   此模式下权限受到限制,很多功能无法使用, 除了破解密码不要加此项
skip-networking
禁止mysql服务器监听网络连接。
主要是为了避免在破解密码的时候,别的机器也可以登录上来。
update mysql.user set authentication_string='' where user='root' and host='localhost';
清空密码
flush privileges;
注意刷新后生效

远程登录

mysql -ulisi -h192.168.232.20 -p'123123' -P3306 

在这里插入图片描述
远程登录的服务器的配置

配置可以远程登录的用户
create user lisi@'192.168.232.%' identified by '123123'; 
授权
grant  all   on   *.*  to  lisi@'192.168.232.%' identified by'123123';

用户权限管理

权限类别

  • 管理类
  • 程序类
  • 数据库级别
  • 表级别
  • 字段级别

管理类:

  • CREATE USER
  • FILE
  • SUPER
  • SHOW DATABASES
  • RELOAD
  • SHUTDOWN
  • REPLICATION SLAVE
  • REPLICATION CLIENT
  • LOCK TABLES
  • PROCESS
  • CREATE TEMPORARY TABLES

库和表级别:针对 DATABASE、TABLE

  • ALTER
  • CREATE
  • CREATE VIEW
  • DROP INDEX
  • SHOW VIEW
  • WITH GRANT OPTION:能将自己获得的权限转赠给其他用户

数据操作

  • SELECT
  • INSERT
  • DELETE
  • UPDATE

字段级别

  • SELECT(col1,col2,…)
  • UPDATE(col1,col2,…)
  • INSERT(col1,col2,…)

所有权限

  • ALL PRIVILEGES 或 ALL

查看权限

show grants for 'lisi'@'192.168.232.%';
USAGE权限只能用于数据库登陆,不能执行任何操作;USAGE权限不能被回收,即 REVOKE 不能删除用户。

授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时, GRANT 语句用于修改用户信息。

格式

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。
数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“ * ”。例如,使用“cxk.* ”表示授权操作的对象为 cxk数据库中的所有表。
‘用户名@来源地址’:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.cxk.com”、“192.168.232.%”等。
IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。

例子

GRANT ALL  ON *.* TO 'lisi'@'%' IDENTIFIED BY '123456';
允许用户lisi在所有终端远程连接mysql,并拥有所有权限。
不要忘记刷新
flush privileges;

在这里插入图片描述
图形界面
输入对应的ip地址和用户。输入
在这里插入图片描述

撤销权限

格式:

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;在这里插入代码片

在这里插入图片描述
注意
USAGE权限只能用于数据库登陆,不能执行任何操作;USAGE权限不能被回收,即 REVOKE 不能删除用户。

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值