MySQL数据库的DCL操作

本文详细介绍MySQL中用户管理的基本操作,包括用户查看、创建、权限授予与撤销、用户删除及密码修改等关键步骤,是数据库管理员必备技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看用户:

如果进入了mysql库:SELECT *FROM USER;
没有进入mysql库内:SELECT *FROM mysql.USER;

创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

参数解析

  • host:可以是具体的IP,也可以用通配符 “%” 来指定任何IP
授予权限:
GRANT privileges ON dbname.tablename TO 'username'@'host';
-- 刷新权限
FLUSH PRIVILEGES;
  • privileges:值可以是select , insert, update, create, drop等,如果要授予所的权限则用ALL
  • dbname:数据库名
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
撤销权限:
REVOKE privilege ON dbname.tablename FROM 'username'@'host';
-- 刷新权限
FLUSH PRIVILEGES;
  • privilege :赋予的权限
  • dbname:数据库名
  • tablename :表名
删除用户:
DROP USER 'username'@'host';
修改密码:

修改密码有多种方式:

  • 修改当前用户的密码(最简单的方式)
-- 修改当前用户的密码
SET PASSWORD=PASSWORD('111');
  • 修改指定用户密码(当前用户也可以只用)
-- 修改指定用户的密码
SET PASSWORD FOR 'pwdManager'@'%' = PASSWORD('123456');
  • 修改authentication_string字段
-- mysql57版本的修改密码方式(会产生一个警告)
UPDATE MySQL.user SET authentication_string=PASSWORD('1234') WHERE USER='pwdManager'
-- 必须进行刷新操作,否则新密码不生效
FLUSH PRIVILEGES;

通常都是在安装MySQL5.7的时候使用最后一种修改密码方式
在安装的时候如果没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set password=password('root') where user='root'时会提示一个错误:ERROR 1054 (42S22): Unknown column 'password' in 'field list'原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string,所以更改语句替换为update MySQL.user set authentication_string=password('root') where user='root';即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值