MySql用户与权限控制
MySql用户与权限控制
-- 刷新权限命令
# -- 刷新mysql权限命令
flush privileges;
用户管理
1、查看用户
#查看用户
USE mysql;
SELECT host,user FROM user;
2、创建用户.
@‘%’ 为host连接,建议进行各种指令操作时带此参数
#创建用户
CREATE USER 'name' identified by 'password'; #创建用户 默认host是%
CREATE USER `name`@`localhost` identified by '000000' #创建本地host连接
3、修改用户
# 3.1、修改用户
UPDATE user SET user ='test2' WHERE user ='test1' AND host = '%'
4、删除用户
# 4、删除用户
DROP user 'test2'; #建议使用
DELETE FROM user WHERE user = 'test2' AND host = '%'; #此方式可能会有残留权限数据 删除不干净
5、修改密码
# 3.2 修改当前链接用户的密码
alter user user() identified by 'new_password'; #写法一
SET PASSWORD= 'new_password';#写法二
# 3.3 修改其他用户的密码 root登陆后
alter user 'test1'@'%' identified by 'new_password'; #写法一
SET PASSWORD FOR 'test1'@'%' = '000000'; #写法二
6、密码过期策略
#设置 test1 用户的密码立刻过期
alter user 'test1'@'%' password expire
#设置密码90天过期
create user "new_user"@"localhost" PASSWORD EXPIRE INTERVAL 90 DAY; #新建用户
alter user "new_user"@"localhost" PASSWORD EXPIRE INTERVAL 90 DAY; #修改用户
#设置密码永不过期
create user "new_user"@"%" PASSWORD EXPIRE NEVER; #新建用户
alter user "new_user"@"%" PASSWORD EXPIRE NEVER; #修改用户
权限管理
1、查看权限
#查看root
SHOW GRANTS
# 或者
SHOW GRANTS FOR CURRENT_USER;
## 查看某个用户的全局权限
SHOW GRANTS FOR 'user'@'%'
2、赋予权限
*.*(库名.表名)
# 赋予用户 所有权限
grant ALL PRIVILEGES ON *.* TO 'new_user'@'%';
# 赋予用户 对 test库的查询和修改权限
grant select,update on test.* to 'new_user'@'%';
# 叠加赋予用户
grant delete on test.* to 'new_user'@'%';
3、回收权限
#回收某个权限
REVOKE UPDATE,DELETE,INSERT ON *.* FROM `username`@`%`; # *.*(库名.表名)
#回收所有的权限
REVOKE ALl PRIVILEGES ON *.* FROM `username`@`%`;
权限表
当mysql建立连接后将数据库用户权限信息写到内存中进行校验
在库名为mysql中以下表:
- user表 用户信息
- db表 操作库权限
- tables_priv 操作表权限
- columns_priv 操作列权限
- procs_priv 操作函数权限
当用户发出操作请求时
- Mysql检查user表中的权限信息 匹配user、host字段值,查看全局权限是否允许,如果找到匹配信息。则执行操作,否则继续向下查找权限
- 检查db表中的权限信息 匹配user、host值,查看请求的数据库级别的权限是否允许,如果找到匹配结果,则执行操作,否则继续向下查找权限
- 检查tables_priv表中的权限信息,匹配user、host值,查看请求的数据表级别是否允许,如果找到匹配结果,则执行操作,否则继续向下查找权限
- 检查columns_priv列中的权限信息,匹配user、host值,查看请求的数据列级别是否允许,如果找到匹配结果,则执行操作,否则mysql返回错误信息
角色管理
1、创建角色
CREATE ROLE 'name'@'%'; #一创建用户1
CREATE ROLE 'name1', 'name2' ... ;#二 创建用户
2、给角色赋予权限
#赋予全部权限
GRANT ALL PRIVILEGES ON 库名.表明 TO '角色名';
#赋予查询删除权限
GRANT SELECT,DELETE ON 库名.表明 TO '角色名';
3、查看角色权限
SHOW GRANTS; #root的权限
SHOW GRANTS FOR "角色名"; #角色名权限
4、回收角色权限
REVOKE UPDATE ON 库名.表名 FROM "角色名";
#回收所有
REVOKE ALl PRIVILEGES ON *.* FROM "角色名";
5、删除角色
DROP ROLE `角色名`
6、激活角色
mysql 创建了角色默认都是未激活状态
#查看当前用户激活状态的角色
SELECT CURRENT_ROLE();
#激活角色 #需要重新登陆后才能查看
set default role `角色名`@`%` TO `用户名`@`%`;
7、给用户赋予角色
GRANT `角色名`@`%` TO `用户名`@`%`;
8、回收用户的角色
REVOKE `角色` FROM `用户`@`%`
MySql用户与权限控制的更多相关文章
- mysql 用户管理 权限控制
添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...
- MySQL 初学笔记 ① -- MySQL用户登录权限控制
1. MySQL 登录 MySQL -u username -p 2. MySQL 创建用户 use mysql //进入mysql 表 INSERT INTO user (Host,User,Pas ...
- mysql 用户及权限管理 小结
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...
- MySQL Study之--MySQL用户及权限管理
MySQL Study之--MySQL用户及权限管理 MySQLserver通过MySQL权限表来控制用户对数据库的訪问.MySQL权限表存放在mysql数据库里.由mysql_install ...
- 如何给mysql用户分配权限+增、删、改、查mysql用户
在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考. 1,Mysql下创建 ...
- Mysql 用户,权限管理的几点理解。
前两天项目数据库要移植到mysql,为此临时抓了几天很久没用的mysql. 公司的数据库比较简单,从oracle迁移到mysql很简单,但是,中间的权限管理让我感觉既简单又复杂..简单是因为网上关于m ...
- 入门MySQL——用户与权限
前言: 前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...
- Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制
kafka系列文章 第一章 linux单机安装kafka 第二章 kafka--集群安裝部署(自带zookeeper) 第三章 Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制 Ka ...
- MariaDB/MySQL用户和权限管理
本文目录: 1.权限验证 1.1 权限表 1.2 图解认证和权限分配的两个阶段 1.3 权限生效时机 2.用户管理 2.1 创建用户 2.2 create user和alter user 2.3 记录 ...
- Mysql 用户和权限管理
用户和权限管理: 语法 grant 权限 on 数据库.数据表 to '用户' @ '主机名'; 例:给 xiaogang 分配所有的权限 grant all on *.* to 'xiaogang' ...
随机推荐
- [Contract] openzeppelin/cli 开发, 部署, 升级智能合约
Install Dependency $ npm init $ npm install @openzeppelin/cli Setup project $ npx openzeppelin init ...
- 微软开源 MS-DOS「GitHub 热点速览」
上周又是被「大模型」霸榜的一周,各种 AI.LLM.ChatGPT.Sora.RAG 的开源项目在 GitHub 上"争相斗艳".这不 Meta 刚开源 Llama 3 没几天,苹 ...
- Linux系统命令-目录命令
1.ls命令:主要作用是显示目录下的内容 基本格式 [root@localhost ~]# ls [选项] [参数是文件名或目录名] 常用选项 -a:显示所有文件 --color=when:支持颜色输 ...
- 羽夏壳世界—— PE 解析的实现
写在前面 此系列是本人一个字一个字码出来的,包括代码实现和效果截图. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后 ...
- 2019年最新前端面试题,js程序设计题
都说机会是留给有准备的人的. 一年之计在于春,面对众多的前端技术,需要时刻充电自己. 我现在整理一些前端js面试程序题. 1.判断一个字符串中出现最多的字符,并计算出现的次数? 2.用css伪类实现下 ...
- Spring6 的JdbcTemplate的JDBC模板类的详细使用说明
1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 @ 目录 1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 每博一文案 2. 环境准备 3 ...
- 【活动访谈】发力数字基座 推动物联创新—航天科技控股集团AIRIOT4.0平台发布会活动专访
近日,由航天科技控股集团股份有限公司主办的"数字基座 智慧物联-AIRIOT4.0平台发布会"在北京圆满落幕.航天三院科技委总工程师王连宝应邀出席本次会议并接受媒体采访,共同参与访 ...
- 西门子PLC设备如何接入AIRIOT物联网低代码平台 ?
西门子PLC设备广泛应用于工业控制领域,高性能和稳定是它最大的优势.下面我们要把西门子300 1200 1500 PLC设备连接到AIRIOT物联网低代码平台,具体操作如下所示: 西门子驱动配置(配套 ...
- 基于Python的性能分析
1.什么是性能分析 字面意思就是对程序的性能,从用户角度出发就是运行的速度,占用的内存. 通过对以上情况的分析,来决定程序的哪部份能被优化.提高程序的速度以及内存的使用效率. 首先我们要弄清楚造成时间 ...
- Django 视图views的基本使用
在 Django 中,视图函数是一个 Python 函数或者类,开发者主要通过编写视图函数来实现业务逻辑.视图函数首先接受来自浏览器或者客户端的请求,并最终返回响应,视图函数返回的响应可以是 HTML ...