当前位置: 首页 > news >正文

MySQL用户管理和授权

用户管理和授权是属于MySQL当中的DCL语句

创建用户以及一些相关操作

明文创建用户

create user 'zzr'@'localhost' IDENTIFIED by '123456';create user  这是创建用户的开头zzr表示用户名
localhost:新建的用户可以在哪些主机上登录。即可以使用IP地址,网段,主机名都可以IDENTIFIED by '123456';  新建用户的密码

我们可以通过IP地址网段主机名进行创建,这些都是对'location'的操作

'zzr'@'localhost'
'zzr'@'192.168.233.0/24'
'zzr'@'192.168.233.22'
'zzr'@'%'

其中  %代表正则任意

加密密码创建用户 :

 SELECT PASSWORD('密码');    #先获取加密的密码​CREATE USER 'lisi'@'localhost' IDENTIFIED BY PASSWORD '加密的密码';

登录用户用户名的更改 

 RENAME USER '旧的用户名'@'旧的主机地址' TO '新的用户名'@'新的主机地址';rename user 'test1'@'20.0.0.100' to 'zzr'@'20.0.0.100';

重命名之后,原本的test1不会保留,新的直接覆盖

删除用户

drop user '用户名'@'登录地址';drop user 'zzr'@'localhost';

修改用户密码

set password = password('abc123');给其他用户设置密码:set password for 'zzr'@'20.0.0.100' = password('123123');

注意:终端没有修改密码的权限,所以得去命令行进行修改密码操作

root用户是超级管理员,它不仅可以修改自身密码,还能修改其他用户的密码。 

root密码的忘记后的修改找回方法 

 该操作必须是在数据库本机且为root用户,才可进行

vim  /etc/my.cnfskip-grant-tables

然后重启数据库即可

systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

用户的相关权限

权限   权限说明权限级别
CREATE创建数据库、表或索引的权限  数据库、表或索引
DROP   删除数据库或表的权限数据库或表
GRANT OPTION  赋予权限选项 数据库或表
REFERENCES 引用权限数据库或表
ALTER  更改表的权限数据表
DELETE 删除表数据的权限 数据表
INDEX操作索引的权限数据表
INSERT  添加表数据的权限数据表
UPDATE 更新表数据的权限 数据表
CREATE VIEW 创建视图的权限视图
SHOW VIEW查看视图的权限视图
ALTER ROUTINE 更改存储过程的权限存储过程

如何给用户赋权

grant all privileges on *.* to 'hj'@'localhost' IDENTIFIED by '123456';grant 赋权的开头语句all PRIVILEGES 赋予所有权限on *.* 所有库on *.* 所有库都有操作权限on hj.*  只能对指定(hj)库进行操作to 'hj'@'localhost' 赋权给哪个用户,要和创建用户赋权格式一致。IDENTIFIED by '123456' 使用哪个密码进行登录。创建用户时候可以省略
show grants for 'hj'@'localhost';查看权限flush privileges;    权限刷新

如何查看指定用户权限

show grant for '用户名'@'来源地址';show grant for 'hj'@'20.0.0.100';

如何对权限进行控制

给用户加上权限:

grant select on 库名.* to '用户名'@'来源地址' idevtified by '密码';grant select on test.* to 'test1'@'20.0.0.100' idevtified by '123456';flush privileges;

如何给一个用户赋予多个权限

grant select,insert,drop on hj.* to  'test1'@'20.0.0.100'  identified by '123456';

如何给用户撤销权限

revoke select on hj.* from 'test1'@'20.0.0.100';

练习

1.创建用户,声明网段 test 网段任选

create user 'test'@'20.0.0.0/24' IDENTIFIED by '123123'

2.创建一个库,库名:test1

3.库中创建两个表分别叫做

table1

id 主键

name 不为空

sex 不为空

CREATE TABLE table1 (
id int(4) PRIMARY KEY,
name_id int(4) NOT NULL,
sex int(4) not null
)

table2

id 主键

address 可以为空 默认-----地址不详

phone 可以为空,不能重复

CREATE TABLE table2 (
id int(4) PRIMARY KEY,
address varchar(50) default '地址不详',
phone varchar(12) UNIQUE
)

3.test可以对test1 的库 进行select insert

GRANT SELECT,INSERT on test1.* to 'test'@'20.0.0.0/24' IDENTIFIED by '123123';
//终端没有权限,所以得去root的命令行执行

4.把test的用户名改成test_123,密码改成abc123

set passwd for 'test'@'20.0.0.%' = password('abc123');
%为正则任意,来代表网段

5.删除权限:insert删去

总结

1.用户管理操作

create user 'username'@'address' identified by 'password';   #创建用户  ​

 select user,host,authentication_string from mysql.user;   #查看用户信息  ​

 rename user old_user to new_user;        #修改用户名  ​

 drop user '用户名'@'来源地址';            #删除用户  ​  

set password = password('XXXX');         #修改当前登录用户的密码  ​

 set password for '用户名'@'来源地址' = password('XXXX');     #修改其他用户的密码  ​

 select user ();      #查看当前登录用户和来源地址  ​

忘记root用户密码的解决方法:  

修改mysql配置文件/etc/my.cnf,在 [mysqld] 配置项下加入 skip-grant-tables

service mysqld restart   #重启服务

 update mysql.user set authentication_string=password('新密码') where user='root';  

#修改密码 flush privileges; #刷新数据库

2.用户授权操作 

grant 权限列表/ALL ON 库名.表名 to 'username'@'address' identified by '密码';  ​   #授予用户权限  show grants;     #查看当前用户(自己)的权限                

show grants for 'username'@'address';      #查看其他用户的权限  ​

 revoke 权限列表/ALL on 库名.表名 from 'username'@'address';   #撤销用户的权限  ​  


 

http://www.lryc.cn/news/213770.html

相关文章:

  • PCIe 的 MSI 中断详解,寄存器级别的详细流程分析,完全搞懂硬件的工作流程
  • 软考 系统架构设计师系列知识点之净室软件工程(1)
  • NFC芯片MS520:非接触式读卡器 IC
  • git push 部分 commit
  • idea自动编译以及修改代码后需要执行 mvn clean install 才生效
  • 21.13 Python 实现端口流量转发
  • CNN卷积神经网络模型的GPU显存占用分析
  • LSF 概览——了解 LSF 是如何满足您的作业要求,并找到最佳资源来运行该作业的
  • 三.RocketMQ单机安装及集群搭建
  • uniapp 模仿 Android的Menu菜单栏
  • wordcloud Python中的词云库
  • 直播间讨论区需要WebSocket,简单了解下
  • 2024年天津高职升本科考试将于11月开始报名
  • linux mysql 创建数据库并配置用户远程管理
  • pppoe拨号案例
  • 基于STM32C8T6的智能蓝牙小车控制设计
  • P3983 赛斯石(赛后强化版),背包
  • 系统架构设计师历年真题案例知识点汇总
  • 缓存击穿只会逻辑过期 OR 互斥锁?深入思考 == 鹤立鸡群
  • 从 Seq2Seq 到 Attention:彻底改变序列建模
  • 手机通讯类、ip查询、智能核验、生活常用API接口推荐
  • 1.6 基本安全设计准则
  • 图扑 HT for Web 手机端运维管理系统
  • LiveGBS流媒体平台GB/T28181常见问题-国标级联海康国标级联大华国标级联华为等,配置了国标级联, 上级看不到通道该怎么办?
  • 数字频带传输——二进制数字调制及MATLAB仿真
  • Bitdu 150万美元投资MSG:Web3合作典范催动极致交易体验
  • CentOS一键部署Docker
  • Centos虚拟机安装配置与MobaXterm工具及Linux常用命令
  • springboot医院绩效考核系统源码
  • Java--枚举类型