DCL语句使用说明及详细介绍

1.查询用户

use mysql;
select * from user;

2.创建用户

create user '用户名'@'主机名' identified by '密码';
举例
create user 'gpt'@'%' identified by 'gpt';
此条语句表示 允许用户 gpt从任何主机访问数据库 密码为 gpt

2.1举例

这条 QL 语句的作用是创建一个新的 MySQL 用户。具体解释如下:

  • CREATE USER 'gpt'@'%':这部分指定要创建的用户是 gpt,并且该用户可以从任何主机(% 表示任意主机)连接到数据库。
  • IDENTIFIED BY 'gpt':这部分设置新用户的密码为 gpt

综上所述,这条语句的功能是创建一个名为 gpt 的新用户,密码为 gpt,并允许该用户从任何主机连接到 MySQL 数据库。

2.2主机名详解

  1. ‘%’:使用百分号 (%) 作为通配符,表示允许从任何主机连接。例如,‘user’@‘%’ 表示用户 user 可以从任何网络地址连接到MySQL服务器。
  2. ‘localhost’:表示用户只能从运行MySQL服务器的同一台机器上连接。通常用于确保只有从该机器本地访问数据库的权限。例如,‘user’@‘localhost’ 表示用户 user 仅能从本地主机连接。
  3. 具体的IP地址:你可以指定一个具体的IP地址,允许用户仅从该IP地址连接。例如,‘user’@‘192.168.1.100’ 允许用户 user 仅从IP地址 192.168.1.100 连接。
  4. 子网掩码:使用子网掩码可以允许来自特定子网的连接。例如,‘user’@‘192.168.1.%’ 允许从IP地址以 192.168.1. 开头的任何地址连接。
  5. 域名:也可以使用完整的域名来限制连接。例如,‘user’@‘myhost.example.com’ 允许从域名为 myhost.example.com 的主机连接。

3.修改用户密码

 alter user '用户名'@'主机名' identified with 加密方式 by '密码';

3.1举例

alter user 'root'@'%' identified with mysql_native_password by '123456';

这条 SQL 语句的作用是修改 MySQL 数据库中用户 root 的身份验证方式和密码。具体解释如下:

  • ALTER USER 'root'@'%':这部分指定要修改的用户是 root,并且该用户可以从任何主机(% 表示任意主机)连接到数据库。
  • IDENTIFIED WITH mysql_native_password:这部分指定用户的身份验证插件为 mysql_native_password,这是 MySQL 的一种传统身份验证方式。
  • BY '123456':这部分设置用户的密码为 123456

综上所述,这条语句的功能是将 root 用户的密码更改为 123456,并确保使用 mysql_native_password 进行身份验证。

3.2加密方式列举

在 MySQL 8 中,主要的密码加密方式(身份验证插件)包括:

  1. mysql_native_password:这是 MySQL 的传统身份验证插件,使用 SHA-1 哈希算法来存储密码。

  2. caching_sha2_password:这是 MySQL 8 的默认身份验证插件,使用 SHA-256 哈希算法,并支持缓存机制以提高性能。它提供了更强的安全性。

  3. sha256_password:这个插件使用 SHA-256 哈希算法,但不支持缓存。它通常用于需要更高安全性的场景。

  4. auth_socket:这个插件允许通过 Unix 套接字进行身份验证,通常用于本地连接。它不需要密码,而是依赖于操作系统的用户身份。

  5. mysql_clear_password:这个插件以明文形式传输密码,通常用于与外部身份验证系统集成时。

  6. pam:这个插件允许使用可插拔认证模块(PAM)进行身份验证,适用于与系统用户管理集成。

  7. ldap:这个插件允许通过 LDAP 进行身份验证,适用于企业环境中使用 LDAP 目录服务的情况。

4.删除用户

drop user '用户名'@'主机名';

4.1 举例

drop user 'gpt_user'@'%';

这条 SQL 语句的作用是删除一个已经存在的 MySQL 用户。具体解释如下:

  • DROP USER 'gpt_user'@'%':这部分指定要删除的用户是 gpt_user,并且该用户可以从任何主机(% 表示任意主机)连接到数据库。

综上所述,这条语句的功能是删除名为 gpt_user 的用户,且该用户的连接来源可以是任意主机。执行这条语句后,用户 gpt_user 将不再能够连接到 MySQL 数据库。请注意,删除用户的操作是不可逆的,因此在执行此命令之前应谨慎确认。

5. mysql拥有的权限

在 MySQL 中,权限(或称为特权)是用来控制用户对数据库操作的规则。根据使用频率,权限可以分为常用权限和不常用权限。以下是一些常用和不常用的权限分类:

5.1常用权限

  1. SELECT:允许用户从表中查询数据。
  2. INSERT:允许用户向表中插入新数据。
  3. UPDATE:允许用户更新表中的数据。
  4. DELETE:允许用户删除表中的数据。
  5. CREATE:允许用户创建新表、数据库或索引。
  6. DROP:允许用户删除表或数据库。
  7. ALTER:允许用户修改表的结构(如添加或删除列)。
  8. GRANT OPTION:允许用户将其拥有的权限授予其他用户。
  9. EXECUTE:允许用户执行存储过程或函数。

5.2不常用权限

  1. INDEX:允许用户创建和删除索引。
  2. CREATE TEMPORARY TABLES:允许用户创建临时表。
  3. LOCK TABLES:允许用户锁定表,以便进行并发操作。
  4. REFERENCES:允许用户创建外键引用(在某些情况下使用)。
  5. SHOW VIEW:允许用户查看视图的定义。
  6. TRIGGER:允许用户创建和删除触发器。
  7. CREATE ROUTINE:允许用户创建存储过程和函数。
  8. ALTER ROUTINE:允许用户修改或删除存储过程和函数。
  9. EVENT:允许用户创建、修改或删除事件调度器的事件。
  10. PROXY:允许用户以其他用户的身份连接。

5.3特殊权限

除了上述常用和不常用权限外,还有一些特殊权限,如:

  • SUPER:允许用户执行管理操作,如杀死线程、修改系统变量等。
  • FILE:允许用户读写服务器文件。
  • RELOAD:允许用户重新加载权限或日志。
  • SHUTDOWN:允许用户关闭 MySQL 服务器。

这些权限可以通过 GRANTREVOKE 语句进行授予和撤销,以便根据具体需求管理用户的访问权限。

6. 查询用户权限

SHOW GRANTS FOR '用户名'@'主机名';

6.1 举例

SHOW GRANTS FOR 'root'@'%';
  • 作用:这条语句用于显示 MySQL 数据库中名为 root 的用户(从任何主机连接,% 表示任意主机)所拥有的权限。
  • 解释:执行这条命令后,MySQL 将返回与 root 用户相关联的所有权限信息,包括用户可以执行的操作以及这些权限适用的数据库和表。

7.授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'

7.1 举例

GRANT ALL ON *.* TO 'root'@'%' 
  • 作用:这条语句用于授予名为 root 的用户(从任何主机连接)所有数据库及表的权限。
  • 解释
    • ALL 表示授予所有可用权限,包括 SELECT、INSERT、UPDATE、DELETE 等。
    • ON *.* 表示这些权限适用于所有数据库和所有表(* 表示所有数据库,第二个 * 表示所有表)。
    • 这条命令通常用于确保 root 用户具有完全的管理权限。

8.撤销权限

REVOKE 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'

8.1举例

REVOKE ALL ON *.* FROM 'root'@'%'
  • 作用:这条语句用于撤销名为 root 的用户(从任何主机连接)在所有数据库和所有表上的所有权限。
  • 解释
    • ALL 表示撤销所有权限。
    • ON *.* 表示这些权限适用于所有数据库和所有表。
    • 这条命令会取消用户 root 在所有数据库和表上的所有操作权限,通常用于对权限进行限制或管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值