Mysql DCL 用户管理、权限管理、禁止root用户远程登录、忘记root密码的解决办法

本文介绍了MySQL的DCL(数据控制语言),包括创建、删除用户,修改密码,赋予和撤销用户权限。详细讲解了Mysql的权限层级和存储权限信息的表。此外,还讨论了如何禁止root用户远程登录以及在忘记root密码时的解决步骤。
摘要由CSDN通过智能技术生成

我们知道,SQL语言按照功能用途分为4类,分别是DDL、DML、DQL和DCL。其中,DCL是数据控制语言,主要用于管理用户和权限。在企业中,这部分工作通常是由DBA完成,一般开发人员很少接触。

DCL主要能做什么?

  1. 创建用户
  2. 删除用户
  3. 修改密码
  4. 给用户赋予权限
  5. 撤销用户权限

Mysql的权限体系大致分为5个层级,全局层级、数据库层级、表层级、列层级和子程序层级

层级 描述
全局层级 适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限。
数据库层级 适用于一个给定数据库中的所有目标。这些权限存储在mysql.db和mysql.host表中。GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤销数据库权限。
表层级 适用于一个给定表中的所有列。这些权限存储在mysql.tables_priv表中。GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤销表权限。
列层级 适用于一个给定表中的单一列。这些权限存储在mysql.columns_priv表中。当使用REVOKE时,您必须指定与被授权列相同的列。
子程序层级 CREATE ROUTINE,ALTER ROUTINE,EXECUTE和GRANT权限适用于已存储的子程序。这些权限可以被授予为全局层级和数据库层级。而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中。

Mysql的权限信息主要存储在以下几张表中,当用户连接数据库时,Mysql会根据这些表对用户进行权限验证。

表名 描述
user 用户权限表,记录账号、密码及全局性权限信息
db 记录数据库相关权限
table_priv 用户对某个表拥有的权限
column_priv 用户对某表的某个列所拥有的权限
procs_priv 用户对存储过程及存储函数的操作权限

用户管理
在Mysql中,使用CREATE USER来创建用户,用户创建后没有任何权限。

创建用户

CREATE USER '用户名' [@'主机名'][IDENTIFIED BY '密码'];

注意:Mysql的用户账号由两部分组成:用户名和主机名,即用户名@主机名&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值