mysql8动态权限
插件权限(动态权限): ---这个表mysql.global_grants;
大多数动态权限是在服务器启动时定义的。其他由特定组件或插件定义,如权限描述中所示。在这种情况下,除非启用定义它的组件或插件,否则该权限不可用。super权限的拆分。
APPLICATION_PASSWORD_ADMIN 双密码管理
AUDIT_ABORT_EXEMPT 允许在审计日志过滤中查看被abort的日志--(此权限由 audit_log插件定义)
*AUDIT_ADMIN 允许审核日志参数 --(此权限由 audit_log插件定义)
AUTHENTICATION_POLICY_ADMIN 认证管理
*BACKUP_ADMIN 允许执行 LOCK INSTANCE FOR BACKUP 语句 和 对 performance_schema.log_status 表的访问。 -----比flush table with read lock更轻量
升级到8.0这个权限自动被授予有reload权限的用户
*BINLOG_ADMIN 允许binlog被PURGE BINARY LOGS和BINLOG语句控制。
BINLOG_ENCRYPTION_ADMIN 允许设置系统变量 binlog_encryption
*CLONE_ADMIN 允许执行CLONE语句。包括BACKUP_ADMIN和SHUTDOWN权限。
CONNECTION_ADMIN 允许使用kill命令杀会话
ENCRYPTION_KEY_ADMIN 允许innodb密钥轮换
FIREWALL_ADMIN 使用户能够管理任何用户的防火墙规则。 --此权限由 MYSQL_FIREWALL插件定义
FIREWALL_EXEMPT 具有此权限的用户不受防火墙限制。 --此权限由 MYSQL_FIREWALL插件定义
FIREWALL_USER 允许用户更新他们自己的防火墙规则。 ---此权限由 MYSQL_FIREWALL插件定义
FLUSH_OPTIMIZER_COSTS 允许执行 FLUSH OPTIMIZER_COSTS语句
FLUSH_STATUS 允许使用FLUSH STATUS语句
FLUSH_TABLES 允许使用FLUSH TABLES语句
FLUSH_USER_RESOURCES 允许使用FLUSH USER_RESOURCES语句
MGR:
GROUP_REPLICATION_ADMIN 使帐户能够使用START GROUP REPLICATION和STOP GROUP REPLICATION语句启动和停止 Group Replication,
更改 group_replication_consistency系统变量的全局设置,以及使用 group_replication_set_write_concurrency() 和 group_replication_set_communication_protocol() 函数。
将此特权授予用于管理作为复制组成员的服务器的帐户。
GROUP_REPLICATION_STREAM 允许该帐户用于建立组复制的组通信连接。
*INNODB_REDO_LOG_ARCHIVE 允许该用户能够激活和停用重做日志归档 ---archived log
*INNODB_REDO_LOG_ENABLE 允许使用ALTER INSTANCE {ENABLE|DISABLE} INNODB REDO_LOG 语句来启用或禁用重做日志记录 ---redo log
NDB_STORED_USER NDB集群(NDB引擎,相当于分布式sql节点)
PASSWORDLESS_USER_ADMIN 允许创建无密码用户,组复制中无密码用户配置
PERSIST_RO_VARIABLES_ADMIN 可以使用 SET PERSIST_ONLY将全局系统变量持久保存到mysqld-auto.cnf数据目录中的选项文件中。
该语句类似于 SET PERSIST但不修改运行时全局系统变量值。这 SET PERSIST_ONLY适用于配置只能在服务器启动时设置的只读系统变量。
主从:
REPLICATION_APPLIER Enables the account to act as the PRIVILEGE_CHECKS_USER for a replication channel,
and to execute BINLOG statements in mysqlbinlog output。 ----配置数据源端
REPLICATION_SLAVE_ADMIN 允许start replica 和stop replica ---配置目标端
和 CHANGE REPLICATION SOURCE TO(8.0)或者CHANGE MASTER TO(5.7)
和CHANGE REPLICATION FILTER
资源组:
RESOURCE_GROUP_ADMIN 允许资源组管理,包括创建、更改和删除资源组,以及将线程和语句分配给资源组。具有此权限的用户可以执行与资源组相关的任何操作。
RESOURCE_GROUP_USER 允许将线程和语句分配给资源组。具有此权限的用户可以使用该 SET RESOURCE GROUP语句和RESOURCE_GROUP 优化器提示。
*ROLE_ADMIN 允许角色管理授予和撤销角色
SENSITIVE_VARIABLES_OBSERVER 允许查看performance库下session_variables、 variables_by_thread和 persisted_variables表里一些敏感值。
SERVICE_CONNECTION_ADMIN 允许连接到仅允许管理员用户连接的网络
SESSION_VARIABLES_ADMIN 对于某些系统变量,设置会话值可能会在当前会话之外产生影响,因此是受限操作(允许设置)
*SET_USER_ID 如果你拥有SET_USER_ID权限,那你可以创建一个带有DEFINER属性的存储过程,并将DEFINER属性设置为任何用户。
更改视图和event的definer需要此权限。
*SHOW_ROUTINE 使用户能够访问所有存储例程(存储过程和函数)的定义和属性,甚至是那些对该用户未命名为例程定义器的定义和属性。此访问权限包括:
表的内容 INFORMATION_SCHEMA.ROUTINES 。
和SHOW CREATE FUNCTION 语句SHOW CREATE PROCEDURE 。
和SHOW FUNCTION CODE 语句SHOW PROCEDURE CODE 。
和SHOW FUNCTION STATUS 语句SHOW PROCEDURE STATUS 。
This enables an account to back up stored routines without requiring a broad privilege.
SKIP_QUERY_REWRITE 具有此权限的用户发出的查询不受Rewriter插件重写的影响。(MySQL 8.0.31 新增)
*SYSTEM_USER 特权用户。具有SYSTEM_USER权限的帐户不能被没有SYSTEM_USER的帐户修改,但system_user能修改普通用户,即使该帐户具有CREATE USER权限。
要修改某个存储过程的定义用户,如果原来的账号A拥有system_user权限,那么修改的账号也需要拥有system_user权限。
SYSTEM_VARIABLES_ADMIN 允许改global system variables用 SET GLOBAL and SET PERSIST
允许 SET PERSIST_ONLY, if the user also has PERSIST_RO_VARIABLES_ADMIN.
允许 setting restricted session system variables that require a special privilege.
实际上,SYSTEM_VARIABLES_ADMIN意味着SESSION_VARIABLES_ADMIN 而没有明确地授予SESSION_VARIABLES_ADMIN。
TABLE_ENCRYPTION_ADMIN 允许用户在 table_encryption_privilege_check 启用时覆盖默认加密设置
TELEMETRY_LOG_ADMIN Enables telemetry log configuration. This privilege is defined by the telemetry_log plugin, which is deployed through MySQL HeatWave on AWS.
TP_CONNECTION_ADMIN Enables connecting to the server with a privileged connection
当达到定义的限制时 thread_pool_max_transactions_limit ,不允许新连接
VERSION_TOKEN_ADMIN Enables execution of Version Tokens functions. This privilege is defined by the version_tokens plugin
XA_RECOVER_ADMIN Enables execution of the XA RECOVER statement;
在MySQL 8.0之前,任何用户都可以执行XA recover语句来发现未完成的准备XA事务的XID值,这可能导致启动用户以外的用户提交或回滚XA事务。
在MySQL 8.0中,XA恢复只允许授予具有XA_RECOVER_ADMIN特权的用户,而该权限预计只授予有需要XA_RECOVER_ADMIN权限的管理用户。
例如,如果XA应用程序的管理员已经崩溃,并且需要找到由应用程序启动的未完成的事务,以便可以回滚它们。
此特权要求阻止用户发现除自己以外的未准备XA事务的XID值。它不会影响XA事务的正常提交或回滚,因为启动它的用户知道它的XID。