2.3、资源限制resource_option: {MAX_QUERIES_PER_HOUR count# 允许该用户每小时多少查询| MAX_UPDATES_PER_HOUR count# 允许该用户每小时多少更新| MAX_CONNECTIONS_PER_HOUR count# 允许该用户每小时多少连接到服务器| MAX_USER_CONNECTIONS count# 限制该用户同时连接到服务器的最大数量}# 限制用户每小时的查询和更新数CREATE USER 'kuzma'@'localhost' WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;如果count为0(默认值) , 表示该用户没有限制 。通常生产用户不会在数据库层做资源限制 , 但某些特殊用户特殊场景下 , 可通过进行资源限制实现限流 。
2.4、账户锁定CREATE USER 和 ALTER USER 中使用 ACCOUNT LOCK 和 ACCOUNT UNLOCK 选项支持用户的锁定和解锁;常见场景:数据库、业务迁移 , 用户切新改造等 , 通过对用户的锁定和解锁 , 实现对业务连接控制 。3、授权用户使用 GRANT 给用户授权 , REVOKE 给用户撤权(需要操作者拥有 GRANT OPTION 权限) 。支持用户对库、表、列、存储过程、代理用户【MySQL用户也可以是个角色】# 授权[kuzma_write]用户{查询、插入、更新、删除}所有库表(*表示所有 , db1.*表示db1库下的所有表)GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO kuzma_write;# 撤销[kuzma_write]用户的删除权限REVOKE DELETE ON *.* FROM 'kuzma_write'@'%';# 设置列权限-----虽然但是有时业务还就是有这样的需求# 1.列权限类型有且仅包括INSERT、REFERENCES(创建外键约束)、SELECT 和 UPDATE , 权限后括号内给定表中的一个或多个列# 2.列权限存储在 mysql.columns_priv , 其中的Column_priv列是一个枚举列 , 亦可说明为什么列权限"有且仅"4种权限GRANT SELECT (col1), INSERT (col1, col2) ON db1.tbl2 TO 'xxx_user'@'xxx_host';# 授权存储过程的创建和执行GRANT CREATE ROUTINE ON db1.* TO 'xxx_user'@'xxx_host';GRANT EXECUTE ON PROCEDURE db1.proc2 TO 'xxx_user'@'xxx_host';# 代理用户# 该PROXY权限使一个用户可以成为另一个用户的代理 , 代理用户冒充或冒用被代理用户的身份 , 实现权限的复制GRANT PROXY ON 'localuser'@'localhost' TO 'xxx_user'@'xxx_host';权限元数据存储位置:
权限类型元数据存储-系统表用户全局权限mysql.user数据库(DB)权限mysql.db表(table)权限mysql.tables_priv列(columns)权限mysql.columns_privroutine-level(procedures and functions)权限mysql.procs_priv代理(proxy)用户权限mysql.proxies_privTips:值得注意的是 , 在某些情况下 , 无论是 CREATE|ALTER USER 还是 GRANT 都可能会记录在服务器日志中或客户端的历史文件中 , 例如 ~/.mysql_history , 这就意味着任何有权读取该信息的人都可以读取明文密码 , 这不就暴露了吗 。 二、瞅瞅其他数据库的用户角色管理1、SQL Server的用户角色服务器级别角色:
- 全局权限 , 只登入名(如超级管理员的登录名是sa)拥有;
- 服务器角色是固定的(包括:sysadmin、setupadmin、serveradmin等) , 用户无法创建服务器角色 , 一般也不建议给用户直接分配服务器角色 。
- 作用域为数据库 , 拥有者可以是用户也可以是数据库角色本身 , 可以理解数据库角色就是一组相同权限的用户;
- 两种类型的数据库级角色:数据库中预定义的“固定数据库角色(fixed-database roles)”(包括:db_owner、db_ddladmin、db_datawriter等)和可以创建的“用户定义数据库角色(user-defined database roles)” 。
- 请不要将用户定义的数据库角色添加为固定角色的成员 , 否则会导致意外的权限升级 。
经验总结扩展阅读
- python+request+pymysql+pytest数据驱动
- CentOS 7.9 安装 MySQL 5.7.35
- 关于windows-server-下MySQL Community版本的的安装与配置
- CentOS 7 下安装 MySQL 8.x
- 无汞电池可以直接扔吗
- 魅蓝e怎么关闭访客模式
- iPhone用户羡慕安卓手机的地方 苹果和安卓的区别是什么
- 2021年Q4手机用户偏好榜-2021年安兔兔第四季度用户偏好榜
- oppo互传是什么意思
- day04-MySQL常用函数01