10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 41.5 mb
PDF (A4)- 41.6 mb
手册(TGZ)- 262.1 kb
手册(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

5.1.9.1系统变量权限

一个系统变量可以有一个全局值影响整个服务器的操作,也可以有一个只影响当前会话的会话值,或者两者都有:

  • 对于动态系统变量,语句可用于更改它们的全局或会话运行时值(或两者),以影响当前服务器实例的操作。(有关动态变量的信息,请参见第5.1.9.2节“动态系统变量”.)

  • 对于某些全局系统变量,可用于将它们的值持久化到mysqld-auto.cnf数据目录下的文件,以影响后续启动服务器的操作。有关持久化系统变量和mysqld-auto.cnf文件的更多信息,请参考第5.1.9.3节“持久系统变量”.)

  • 对于持久的全局系统变量,重置持续可以用来移除它们的价值mysqld-auto.cnf,以影响后续启动时的服务器操作。

本节描述在运行时为系统变量赋值的操作所需的特权。这包括影响运行时值的操作,以及保存值的操作。

若要设置全局系统变量,请使用语句,并使用适当的关键字。这些特权适用于:

控件中删除持久化的全局系统变量mysqld-auto.cnf文件,使用重置持续声明。这些特权适用于:

如果全局系统变量对上述权限要求有任何例外,则由变量描述来标识这些例外。例子包括default_table_encryption而且mandatory_roles,这需要额外的特权。这些附加特权适用于设置全局运行时值的操作,但不适用于保存该值的操作。

要设置会话系统变量运行时值,请使用设置会话声明。与设置全局运行时值相比,设置会话运行时值通常不需要特殊权限,任何用户都可以执行此操作来影响当前会话。对于某些系统变量,设置会话值可能在当前会话之外产生影响,因此是一种受限制的操作,只有具有特殊权限的用户才能执行:

当会话系统变量被限制时,变量的描述信息表示该限制。例子包括binlog_format而且sql_log_bin.设置这些变量的会话值会影响当前会话的二进制日志记录,但也可能对服务器复制和备份的完整性产生更广泛的影响。

SESSION_VARIABLES_ADMIN使管理员能够最小化以前可能被授予的用户的特权占用SYSTEM_VARIABLES_ADMIN超级目的是使他们能够修改受限制的会话系统变量。假设管理员创建了以下角色来授予设置受限会话系统变量的能力:

CREATE ROLE set_session_sysvars在*上授予system_variable_admin。* set_session_sysvars;

任何被授予set_session_sysvars角色(以及激活该角色的人)能够设置受限制的会话系统变量。然而,该用户还能够设置全局系统变量,这可能是不需要的。

通过修改角色来拥有SESSION_VARIABLES_ADMIN而不是SYSTEM_VARIABLES_ADMIN,角色特权可以简化为只能设置受限制的会话系统变量,而不能设置其他任何权限。要修改角色,使用以下语句:

在*上授予session_variable_admin。* set_session_sysvars;在*上撤销system_variables_admin。* FROM set_session_sysvars;

修改角色会立即产生效果:任何被授予set_session_sysvars角色不再有SYSTEM_VARIABLES_ADMIN并且在没有明确授予该能力的情况下,不能设置全局系统变量。一个类似的格兰特/撤销序列可以应用到任何被授予的帐户SYSTEM_VARIABLES_ADMIN直接而不是通过角色。