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

网站建设_广州网站建设专业公司google 官网入口

网站建设_广州网站建设专业公司,google 官网入口,顾问式 网站,wordpress 自动加版权MySQL数据库系统在管理用户访问控制时,除了传统的静态权限之外,还引入了动态权限的概念。动态权限机制为系统管理员提供了更为灵活和细致的权限管理方式,允许根据运行时环境和特定组件的需求来定义和授予权限。本文将深入探讨MySQL动态权限的…

MySQL数据库系统在管理用户访问控制时,除了传统的静态权限之外,还引入了动态权限的概念。动态权限机制为系统管理员提供了更为灵活和细致的权限管理方式,允许根据运行时环境和特定组件的需求来定义和授予权限。本文将深入探讨MySQL动态权限的特性和应用方法。

动态权限的基本概念

动态权限与服务器启动时即已内置的静态权限相对,它们是在运行时由服务器或特定组件定义的。这意味着动态权限的存在与否依赖于相关组件是否被启用。例如,某些插件可能在安装时注册自己的动态权限,而这些权限只有在该插件激活时才生效。动态权限的设计使得权限管理能够更加适应多样化的应用场景和安全需求。

动态权限概览:

  • APPLICATION_PASSWORD_ADMIN(从MySQL 8.0.14起):为双密码功能服务,允许用户在修改自身账户时使用RETAIN CURRENT PASSWORDDISCARD OLD PASSWORD子句。
  • AUDIT_ABORT_EXEMPT(自MySQL 8.0.28始):允许查询绕过审计日志过滤器中的“abort”限制,由audit_log插件定义。
  • AUDIT_ADMIN:支持审计日志的管理。
  • NDB_STORED_USER(自NDB 8.0.18起):允许用户在NDB集群中存储,角色带有此权限也会被存储。
  • PASSWORDLESS_USER_ADMIN(自MySQL 8.0.27起):用于无密码账户的管理,创建无密码账户或处理复制用户时需要此权限。
  • PERSIST_RO_VARIABLES_ADMIN:结合SYSTEM_VARIABLES_ADMIN,允许使用SET PERSIST_ONLY命令只将只读系统变量持久化到配置文件,不影响运行时值。
  • REPLICATION_APPLIER:使账户能作为复制通道的权限检查用户,并执行mysqlbinlog输出中的BINLOG语句。
  • REPLICATION_SLAVE_ADMIN:允许连接到复制源服务器,使用START REPLICASTOP REPLICA管理复制,以及变更复制源设置。
  • RESOURCE_GROUP_ADMIN:提供资源组的全面管理能力,包括创建、修改和删除资源组,以及线程和语句的分配。
  • RESOURCE_GROUP_USER:仅允许用户将其线程和语句分配给资源组。
  • SET_USER_ID:允许在执行视图或存储程序时设定有效的授权ID,可指定任何账户作为DEFINER,且自MySQL 8.0.22起,能绕过防止存储对象成为孤儿或被意外采用的安全检查。
  • SHOW_ROUTINE(自MySQL 8.0.20起):允许访问所有存储例程的定义和属性,即使用户不是定义者。
  • SKIP_QUERY_REWRITE(自MySQL 8.0.31起):发出的查询不受Rewriter插件重写影响。
  • SYSTEM_USER(自MySQL 8.0.16起):区分系统用户与普通用户,系统用户拥有此权限。
其他特定场景权限包括:
  • FIREWALL_ADMINFIREWALL_EXEMPTFIREWALL_USER:分别用于管理、豁免和更新个人防火墙规则,由MYSQL_FIREWALL插件定义。
  • FLUSH_* 系列权限:如FLUSH_OPTIMIZER_COSTSFLUSH_STATUS等,允许执行相应的FLUSH语句,用于优化器成本刷新、状态刷新等。
  • GROUP_REPLICATION_ADMIN:管理Group Replication,包括启动/停止、一致性设置等。
  • GROUP_REPLICATION_STREAM:允许账户用于Group Replication的组通信连接。
  • INNODB_REDO_LOG_ARCHIVEINNODB_REDO_LOG_ENABLE:管理InnoDB重做日志存档和启用/禁用。
  • MASKING_DICTIONARIES_ADMIN:管理数据屏蔽词典,增删词典条目。

动态权限的注册与管理

MySQL服务器内部维护着一个动态权限的注册表,这些权限存储在内存中,并在服务器关闭时进行注销。组件(如插件)在安装初始化阶段通常会自动注册其定义的动态权限,但在卸载时并不会自动注销这些权限。重复安装同一组件不会因为权限已经注册而产生警告或错误。

动态权限仅在全球级别(全局范围)有效,且服务器通过mysql.global_grants系统表记录用户账户的动态权限分配情况。当服务器启动时(除非使用了--skip-grant-tables选项),会自动注册这个表中列出的所有动态权限。此外,GRANTREVOKE语句可以修改这些权限的分配状态,且这些更改是持久化的,不会因服务器重启而丢失。

动态权限的授予与撤销

在使用GRANTREVOKE语句时,如果指定了非静态权限,服务器会检查当前已注册的动态权限列表,如果找到匹配项则进行授权,否则报错提示未知权限。当使用GRANT ALL [PRIVILEGES]全局级别指令时,它会授予所有静态全局权限及当前已注册的所有动态权限,但之后新注册的动态权限不会追溯性地授予任何账户。相反,REVOKE ALL则会撤销所有已授予的静态和动态权限。

迁移账户从SUPER到动态权限

MySQL 8.0版本中,许多原本需要SUPER权限的操作现在关联有更具体范围的动态权限。这一改变旨在提高安全性,使数据库管理员能够避免广泛授予SUPER权限,而是根据实际操作需求精细化定制用户权限。由于SUPER权限已被废弃,未来版本中可能会被移除,因此,对于拥有SUPER权限的账户,应提前迁移至相应的动态权限上,以确保在SUPER权限移除后,这些账户仍能执行必要的操作。

示例与实践

例如,若要授予用户u1控制复制(包括组复制)和修改系统变量的权限,可使用以下GRANT语句:

GRANT REPLICATION_SLAVE_ADMIN, GROUP_REPLICATION_ADMIN, BINLOG_ADMIN
ON . TO 'u1'@'localhost';

动态权限的授予情况可通过SHOW GRANTS命令和INFORMATION_SCHEMA.USER_PRIVILEGES表查询得知。

http://www.dtcms.com/wzjs/323929.html

相关文章:

  • 网站推广的方法和渠道北京seo公司有哪些
  • wordpress站群软件seo sem推广
  • 用html做家谱网站代码查询网址域名ip地址
  • 电子商务网站开发教程长春网络推广公司哪个好
  • 免费自己做网站吗什么是新媒体营销
  • wordpress 付费主题 时间seo实战密码电子版
  • 入替皮杖 wordpress唐山seo排名
  • 电力建设网站进不去一站式快速网站排名多少钱
  • h5个人网站源码新手如何涨1000粉
  • 重庆网站建设推广推广平台免费b2b网站大全
  • 网站策划的内容seo优化按天扣费
  • 北京 做网站站长工具国产
  • 潍坊市网站新站seo外包
  • 深圳的网站建设公司排名百度号码查询平台
  • 网站定制开发是什么意思网络营销推广优化
  • 科技袁人袁岚峰seo推广软件排行榜前十名
  • 做 淘宝客最大的网站是叫什么名字四种营销策略
  • 公司建网站要多少钱营销型网站有哪些功能
  • 做淘宝客如何引出图片到网站百度首页百度
  • 游戏开发物语完美搭配百度推广怎么优化关键词的质量
  • 建个企业网站多少钱百度网站快速排名公司
  • 专业建设网站应该怎么做google网页版入口
  • 有域名一定要买空间做网站中国数据网
  • 为什么很多公司做网站建设成品网站1688入口网页版怎样
  • 中国风格网站企业网络规划设计方案
  • 网络网站建设价格山东百度推广代理
  • 广广东网站建设企业培训内容包括哪些内容
  • 校园网站建设情况快抖霸屏乐云seo
  • 陇南做网站seo公司推荐
  • wordpress 目录 导航站在线网站seo优化