MySQL5.7之grant

  官网地址:MySQL :: MySQL 5.7 Reference Manual :: 13.7.1.4 GRANT Statement

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

Mysql5.7参考手册  /  ...  /  赠款声明
13.7.1.4 GRANT Statement
GRANTpriv_type [(column_list)][, priv_type [(column_list)]] ...ON [object_type] priv_levelTO user [auth_option] [, user [auth_option]] ...[REQUIRE {NONE | tls_option [[AND] tls_option] ...}][WITH {GRANT OPTION | resource_option} ...]GRANT PROXY ON userTO user [, user] ...[WITH GRANT OPTION]object_type: {TABLE| FUNCTION| PROCEDURE
}priv_level: {*| *.*| db_name.*| db_name.tbl_name| tbl_name| db_name.routine_name
}user:(see Section 6.2.4, “Specifying Account Names”)auth_option: {IDENTIFIED BY 'auth_string'| IDENTIFIED WITH auth_plugin| IDENTIFIED WITH auth_plugin BY 'auth_string'| IDENTIFIED WITH auth_plugin AS 'auth_string'| IDENTIFIED BY PASSWORD 'auth_string'
}tls_option: {SSL| X509| CIPHER 'cipher'| ISSUER 'issuer'| SUBJECT 'subject'
}resource_option: {| MAX_QUERIES_PER_HOUR count| MAX_UPDATES_PER_HOUR count| MAX_CONNECTIONS_PER_HOUR count| MAX_USER_CONNECTIONS count
}

…GRANT 语句授予mysql用户帐户特权。有几个方面GRANT 在下列专题下介绍的声明:

  • 一般概述

  • 反对引用指引

  • 由mysql支持的特权

  • 帐户名称及密码

  • 全球特权

  • 数据库权限

  • 表格特权

  • 列权限

  • 存储常规权限

  • 代理用户权限

  • 隐式账户创建

  • 其他帐户特征

  • 千年发展目标和标准SQL赠款版本

一般概述

…GRANT 语句授予mysql用户帐户特权。

给予他们特权 GRANT ,你必须拥有 GRANT OPTION 你必须拥有你所授予的特权。(如果你有 UPDATE 资助表的特权mysql 系统数据库,您可以授予任何帐户任何特权.)当…… read_only 系统变量启用,GRANT 另外要求SUPER 特权。

…REVOKE 陈述与GRANT 并允许管理员删除帐户权限。看 第13.7.1.6节,"撤销声明" .

每个帐户名称使用的格式 第6.2.4节,"说明帐户名称" .例如:

GRANT ALL ON db1.* TO 'jeffrey'@'localhost';

如果省略,帐户的主机名称部分默认为 '%' .

通常,数据库管理员首先使用 CREATE USER 创建帐户并定义其非特权特性,如密码、是否使用安全连接以及对访问服务器资源的限制,然后使用 GRANT 定义它的特权。 ALTER USER 可以用来改变现有账户的非特权特征。例如:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON db1.* TO 'jeffrey'@'localhost';
GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
ALTER USER 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;
注意事项

例子如下:IDENTIFIED 条款。假设你用 CREATE USER 在建立账户的时间,以避免创建不安全的账户。

注意事项

如果一个账户的名字 GRANT 已经没有声明了,GRANT 可根据下文讨论中所述的条件设立。 NO_AUTO_CREATE_USER sql模式。也可以使用 GRANT 指定非特权帐户特性,如它是否使用安全连接和对访问服务器资源的限制。

然而,使用GRANT 在mysql5.7中,对于创建帐户或定义非特权特性是不赞成的。相反,使用这些任务CREATE USER 或 ALTER USER .

来自 Mysql 程序, GRANT 回答: Query OK, 0 rows affected 一旦成功执行。为了确定操作产生的权限,请使用SHOW GRANTS .看 第13.7.5.21节,"显示补助金报表" .

重要的

在某些情况下, GRANT 可以记录在服务器日志或客户端的历史文件中,例如: ~/.mysql_history ,也就是说,任何人都可以阅读清楚的文本密码。有关服务器日志发生这种情况的信息以及如何控制它,请参见 第6.1.2.3节,"密码和日志记录" .有关客户端日志记录的类似信息,请参阅 Section 4.5.1.3, “mysql Client Logging” .

GRANT支持主机名称最多60个字符长。用户名最多可达32个字符。数据库、表、列和例程名称最多可达64个字符。

警告

不要试图通过改变用户名的允许长度来改变mysql.user 系统表。这样做会导致不可预测的行为,甚至可能使用户无法登录到mysql服务器 .绝不改变表格的结构。mysql 系统数据库以任何方式进行,但通过下列程序除外: Section 2.10, “Upgrading MySQL” .

反对引用指引

里面有几个物体GRANT 声明可以引用,但在许多情况下,引用是可选的:帐户、数据库、表、列和常规名称。例如,如果 user_name 或 host_name 帐户名中的值作为未引用的标识符是合法的,您不必引用它。但是,需要有引号来指定 user_name 包含特殊字符的字符串(例如- ),或 host_name 包含特殊字符或通配符的字符串% (例如,'test-user'@'%.com' )。分别引用用户名和主机名。

指定引用值:

  • 引用数据库、表、列和例程名称作为标识符.

  • 引用用户名和主机名作为标识符或字符串.

  • 引用密码作为字符串。

关于字串引用和标识引用指南,请参阅 第9.1.1节,"字符串文字" ,以及 第9.2节,"模式对象名称" .

_ 和% 在指定数据库名称时,允许使用通配符。 GRANT 授予数据库级权限的语句( )。例如,这意味着 字符作为数据库名称的一部分,请使用 逃跑性格 在…中 语句,防止用户访问与通配符模式相匹配的额外数据库(例如, ). GRANT ... ON db_name.*_\\_GRANTGRANT ... ON `foo\_bar`.* TO ...

发行倍数GRANT 包含通配符的语句可能不会对DML语句产生预期效果;在解析涉及通配符的授予时,mysql只考虑第一个匹配的授予。换句话说,如果用户使用与同一数据库相匹配的通配符拥有两个数据库级的授予,则首先创建的授予将被应用。考虑一下数据库 db 和餐桌t 使用这里所示的语句:

mysql> CREATE DATABASE db;
Query OK, 1 row affected (0.01 sec)mysql> CREATE TABLE db.t (c INT);
Query OK, 0 rows affected (0.01 sec)mysql> INSERT INTO db.t VALUES ROW(1);
Query OK, 1 row affected (0.00 sec)

接下来(假设经常账户是mysql) root 拥有必要权限的帐户),我们创建一个用户u 接下来是第二次GRANT 包含通配符的语句,如:

mysql> CREATE USER u;
Query OK, 0 rows affected (0.01 sec)mysql> GRANT SELECT ON `d_`.* TO u;
Query OK, 0 rows affected (0.01 sec)mysql> GRANT INSERT ON `d%`.* TO u;
Query OK, 0 rows affected (0.00 sec)mysql> EXIT
Bye

如果我们结束了会话然后再次登录 Mysql 客户,这次是 U ,我们看到这个帐户只拥有第一批对等拨款所提供的特权,但没有第二批:

$> mysql -uu -hlocalhost
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.46-tr Source distributionCopyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.mysql> TABLE db.t;
+------+
| c    |
+------+
|    1 |
+------+
1 row in set (0.00 sec)mysql> INSERT INTO db.t VALUES ROW(2);
ERROR 1142 (42000): INSERT command denied to user 'u'@'localhost' for table 't'

当一个数据库名不用于授予数据库级的特权,而是作为授予某些其他对象(例如表或例程)特权的限定符时(例如, ),mysql将通配符解释为文字字符。 GRANT ... ON db_name.tbl_name

由mysql支持的特权

下表概述了允许的 priv_type 可为GRANT 和 REVOKE 以及每个特权的级别。有关每个特权的其他信息,请参阅 第6.2.2节,"mysql提供的特权" .

表13.5授予和撤销的允许特权

特权意义和可承认水平
ALL [PRIVILEGES]在指定存取级别授予所有特权,但 GRANT OPTION 和 PROXY .
ALTER能够使用ALTER TABLE .级别:全球、数据库、表格。
ALTER ROUTINE允许修改或删除存储例程。级别:全球,数据库,日常。
CREATE启用数据库和表创建。级别:全球、数据库、表格。
CREATE ROUTINE启用存储程序创建.级别:全球数据库。
CREATE TABLESPACE启用表空间和日志文件组以创建、修改或删除。级别:全球。
CREATE TEMPORARY TABLES能够使用CREATE TEMPORARY TABLE .级别:全球数据库。
CREATE USER能够使用CREATE USER , DROP USER , RENAME USER ,以及 REVOKE ALL PRIVILEGES .级别:全球。
CREATE VIEW允许创建或更改视图。级别:全球、数据库、表格。
DELETE能够使用DELETE .级别:全球,数据库,表格.
DROP允许删除数据库、表和视图。级别:全球、数据库、表格。
EVENT启用事件调度程序的事件。级别:全球数据库。
EXECUTE使用户能够执行存储例程.级别:全球,数据库,日常。
FILE使用户能够使服务器读取或写入文件.级别:全球。
GRANT OPTION允许授予其他帐户或从其他帐户中删除的特权。级别:全局,数据库,表格,例行,代理.
INDEX允许创建或删除索引。级别:全球、数据库、表格。
INSERT能够使用INSERT .级别:全局,数据库,表格,列.
LOCK TABLES能够使用LOCK TABLES 在你的桌子上SELECT 特权。级别:全球数据库。
PROCESS使用户能够看到所有的过程SHOW PROCESSLIST .级别:全球。
PROXY启用用户代理。层次:从用户到用户.
REFERENCES启用外键创建。级别:全局,数据库,表格,列.
RELOAD能够使用FLUSH 手术。级别:全球。
REPLICATION CLIENT允许用户询问源服务器或副本服务器在哪里。级别:全球。
REPLICATION SLAVE启用副本从源文件读取二进制日志事件。级别:全球。
SELECT能够使用SELECT .级别:全局,数据库,表格,列.
SHOW DATABASES使能SHOW DATABASES 显示所有数据库。级别:全球。
SHOW VIEW能够使用SHOW CREATE VIEW .级别:全球、数据库、表格。
SHUTDOWN能够使用 Mysq判刑 .级别:全球。
SUPER能够利用其他行政业务,例如: CHANGE MASTER TO , KILL , PURGE BINARY LOGS , SET GLOBAL ,以及 Mysq判刑;调试 指挥官。级别:全球。
TRIGGER启动触发操作。级别:全球、数据库、表格。
UPDATE能够使用UPDATE .级别:全局,数据库,表格,列.
USAGE同义词 “ 无特权 ”
 

触发器与表关联。要创造或放下一个触发器,你必须拥有 TRIGGER 为了桌子的特权,不是触发器。

在…中GRANT 声明, ALL [PRIVILEGES] 或PROXY 特权必须单独命名,不能与其他特权一起指定。 ALL [PRIVILEGES] 所列所有特权的级别,除了 GRANT OPTION 和 PROXY 特权。

USAGE 可以指定创建没有权限的用户,或指定 REQUIRE 或WITH 一个帐户的条款没有改变它的现有特权。(不过,使用GRANT 定义非特权特征是被反对的。

Mysql帐户信息存储在《经济、社会、文化权利国际公约》的表格中。 mysql 系统数据库。详情请参阅 第6.2节,"出入控制和帐户管理" ,讨论mysql 系统数据库和访问控制系统广泛.

如果授予表持有包含混合情况数据库或表名称的特权行,以及 lower_case_table_names 系统变量设置为非零值, REVOKE 不能用来撤销这些特权。有必要直接操作授予表。(GRANT 不创建这样的行 lower_case_table_names 已设置,但这些行可能是在设置变量之前创建的。)

特权可以在多个级别授予,这取决于用于ON 条款。用于 REVOKE ,一样 ON 语法指定要删除哪些特权。

对于全球数据库表格和日常级别, GRANT ALL 只分配在您授予的级别上存在的特权。例如, 是一个数据库级语句,因此它不授予任何全球性的权限,例如 .授予 不指定 或 特权。 GRANT ALL ON db_name.*FILEALLGRANT OPTIONPROXY

object_type 如果有条款,应规定为:TABLE , FUNCTION ,或PROCEDURE 当下列对象是表、存储函数或存储过程时.

用户为数据库、表、列或例程持有的权限作为逻辑的附加形式形成。 OR 每个权限级别的帐户特权,包括全局级别。不可能由于在较低一级没有这种特权而拒绝给予较高级别的特权。例如,这份声明同意 SELECT 和 INSERT 全球特权:

GRANT SELECT, INSERT ON *.* TO u1;

全局授予的权限适用于所有数据库、表和列,即使不是在较低级别授予的权限。

特权审核程序详情载于 第6.2.6节,"出入控制,第2阶段:请求核查" .

如果您甚至为一个用户使用表、列或例程权限,则服务器检查所有用户的表、列和例程权限,这稍微减缓了mysql的速度。同样,如果您为任何用户限制查询、更新或连接的数量,则服务器必须监控这些值。

Mysql使您能够在不存在的数据库或表上授予特权。对于表格,授予的特权必须包括CREATE 特权。 这种行为是设计的 ,目的是使数据库管理员能够为以后创建的数据库或表准备用户帐户和权限。

重要的

当您删除数据库或表时,Mysql不会自动撤销任何特权 .但是,如果您放弃了一个例程,则撤销为该例程授予的任何例程级别权限。

帐户名称及密码

Auser 价值a GRANT 语句表示该语句所适用的mysql帐户。为了容纳来自任意主机的用户权限,mysql支持指定user 表中的价值 . 'user_name'@'host_name'

您可以在主机名中指定通配符。例如, 适用于 为任何一个 领域,和 适用于 为任何一个 C类子网。 'user_name'@'%.example.com'user_nameexample.com'user_name'@'198.51.100.%'user_name198.51.100

简单的形式 是一个同义词 . 'user_name''user_name'@'%'

Mysql不支持用户名中的通配符 .若要查询匿名用户,请指定一个帐户,帐户上有一个空的用户名。 GRANT 声明:

GRANT ALL ON test.* TO ''@'localhost' ...;

在这种情况下,允许从本地主机连接到匿名用户正确密码的任何用户访问与匿名用户帐户相关的权限。

有关帐户名称中的用户名和主机名值的其他信息,请参阅 第6.2.4节,"说明帐户名称" .

警告

如果您允许本地匿名用户连接到mysql服务器,您还应该向所有本地用户授予权限,作为 .否则,匿名用户帐户 在…中 当指定的用户试图从本地机器登录到mysql服务器时,将使用系统表。详情请参阅 第6.2.5节,"出入控制,第1阶段:连接核查" . 'user_name'@'localhost'localhostmysql.user

若要确定此问题是否适用于您,请执行列出任何匿名用户的下列查询:

SELECT Host, User FROM mysql.user WHERE User='';

为避免上述问题,请使用此语句删除本地匿名用户帐户:

DROP USER ''@'localhost';

为了GRANT 允许auth_option 遵循A的价值 user 价值, auth_option 始于 IDENTIFIED 并通过指定帐户身份验证插件、凭证(例如密码)或两者,指示帐户如何进行身份验证。的语法 auth_option 条款是相同的CREATE USER 声明。详情请参阅 第13.7.1.2节,"创建用户声明" .

注意事项

使用GRANT 在mysql5.7中,定义帐户身份验证特性是不可取的。相反,建立或改变身份验证特征 CREATE USER 或 ALTER USER .希望如此 GRANT 在未来的mysql版本中移除的能力。

何时IDENTIFIED 你拥有全球赠款特权(GRANT OPTION ),任何指定的密码都会成为该帐户的新密码,即使该帐户存在并且已经有密码。没有IDENTIFIED ,帐户密码不变。

全球特权

全局权限是管理的或适用于给定服务器上的所有数据库。分配全局权限,使用 ON *.* 语法:

GRANT ALL ON *.* TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost';

…CREATE TABLESPACE , CREATE USER , FILE , PROCESS , RELOAD , REPLICATION CLIENT , REPLICATION SLAVE , SHOW DATABASES , SHUTDOWN ,以及 SUPER 特权是行政性的,只能在全球范围内授予。

其他特权可在全球范围或更具体的级别授予。

GRANT OPTION在全球一级授予任何全球特权适用于所有全球特权。

Mysql在 mysql.user 系统表。

数据库权限

数据库权限适用于给定数据库中的所有对象.分配数据库级权限,使用 语法: ON db_name.*

GRANT ALL ON mydb.* TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'somehost';

如果你用ON * 语法(而不是 ON *.* ),在数据库一级为默认数据库分配权限。如果没有默认数据库,就会发生错误.

…CREATE , DROP , EVENT , GRANT OPTION , LOCK TABLES ,以及 REFERENCES 权限可以在数据库级别上指定。表或例程的权限也可以在数据库一级指定,在这种情况下,它们适用于数据库中的所有表或例程。

Mysql在 mysql.db 系统表。

表格特权

表权限适用于给定表中的所有列。分配表级权限,使用 语法: ON db_name.tbl_name

GRANT ALL ON mydb.mytbl TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON mydb.mytbl TO 'someuser'@'somehost';

如果你指定tbl_name 与其说 db_name.tbl_name ,该声明适用于tbl_name 在默认数据库中。如果没有默认数据库,就会发生错误.

允许的priv_type 表一级的数值ALTER , CREATE VIEW , CREATE , DELETE , DROP , GRANT OPTION , INDEX , INSERT , REFERENCES , SELECT , SHOW VIEW , TRIGGER ,以及 UPDATE .

表级权限适用于基表和视图。它们不适用于使用CREATE TEMPORARY TABLE ,即使表格名称匹配。有关TEMPORARY 表上特权,见 第13.1.18.2节,"创建临时表格说明" .

Mysql在 mysql.tables_priv 系统表。

列权限

列权限适用于给定表中的单个列。在列级别授予的每一个权限必须后面是括号内的列或列。

GRANT SELECT (col1), INSERT (col1, col2) ON mydb.mytbl TO 'someuser'@'somehost';

允许的priv_type 列的值(即当您使用 column_list 条款) INSERT , REFERENCES , SELECT ,以及 UPDATE .

Mysql在 mysql.columns_priv 系统表。

存储常规权限

…ALTER ROUTINE , CREATE ROUTINE , EXECUTE ,以及 GRANT OPTION 特权适用于存储例程(过程和函数)。它们可以在全球和数据库两级授予。除了 CREATE ROUTINE ,这些特权可在例行程序级别授予个别例行程序。

GRANT CREATE ROUTINE ON mydb.* TO 'someuser'@'somehost';
GRANT EXECUTE ON PROCEDURE mydb.myproc TO 'someuser'@'somehost';

允许的priv_type 常规级别的价值观是ALTER ROUTINE ,EXECUTE ,以及 GRANT OPTION . CREATE ROUTINE 不是常规级的特权,因为您必须在全局级或数据库级拥有创建例程的特权。

Mysql在 mysql.procs_priv 系统表。

代理用户权限

…PROXY 特权使一个用户能够成为另一个用户的代理。代理用户模拟或获取被代理用户的身份;也就是说,它承担被代理用户的特权。

GRANT PROXY ON 'localuser'@'localhost' TO 'externaluser'@'somehost';

何时PROXY 是被授予的,它必须是唯一的特权 GRANT 声明, REQUIRE 无法给出条款,唯一允许的WITH 选择是WITH GRANT OPTION .

代理请求代理用户通过一个插件进行身份验证,该插件在代理用户连接时将被代理用户的名称返回到服务器,并且代理用户拥有 PROXY 代理用户的特权。详情及例子,请参阅 第6.2.14节,"代理用户" .

Mysql在 mysql.proxies_priv 系统表。

隐式账户创建

如果一个账户的名字GRANT 声明并不存在,所采取的行动取决于 NO_AUTO_CREATE_USER sql模式:

  • 如果NO_AUTO_CREATE_USER 无法使用,GRANT 创建帐户。 很不安全 除非你使用非空密码IDENTIFIED BY .

  • 如果NO_AUTO_CREATE_USER 已经启用,GRANT 失败和不创建帐户,除非使用非空密码指定IDENTIFIED BY 或者命名使用的身份验证插件IDENTIFIED WITH .

如果帐户已经存在,IDENTIFIED WITH 禁止使用,因为它只用于创建新帐户。

其他帐户特征

除了基于用户名和凭证的通常身份验证之外,Mysql还可以检查X.509证书属性。有关在mysql中使用SSL的背景信息,请参阅 第6.3节,"使用加密连接" .

可选择的REQUIRE 条款为mysql帐户指定了与SSL相关的选项。它的语法和CREATE USER 声明。详情请参阅 第13.7.1.2节,"创建用户声明" .

注意事项

使用GRANT 在mysql5.7中,定义帐户SSL特性是不赞成的。相反,建立或改变SSL特性CREATE USER 或ALTER USER .希望如此GRANT 在未来的mysql版本中移除的能力。

可选择的WITH 这些条款用于这些目的:

  • 使用户能够授予其他用户权限

  • 为用户指定资源限制

WITH GRANT OPTION 条款赋予用户在指定权限级别上向其他用户提供任何特权的能力。

给予GRANT OPTION 在不改变帐户特权的情况下,可以这样做:

GRANT USAGE ON *.* TO 'someuser'@'somehost' WITH GRANT OPTION;

小心你给谁GRANT OPTION 因为两个拥有不同权限的用户可以合并权限!

你不能授予另一个用户你自己没有的特权;GRANT OPTION 特权使你能只分配你自己拥有的特权。

请注意,当您授予用户 GRANT OPTION 在特定的权限级别上,用户在该级别上拥有(或将来可能给予)的任何权限也可以由该用户授予其他用户。假设你给一个用户INSERT 数据库上的特权。如果你同意 SELECT 数据库上的特权并指定WITH GRANT OPTION ,该用户不但可以向其他用户提供 SELECT 特权,但也 INSERT .如果你同意 UPDATE 对数据库中的用户有特权,用户可以授予 INSERT , SELECT ,以及 UPDATE .

对于非管理性用户,您不应该授予 ALTER 全球范围的特权或mysql 系统数据库。如果您这样做,用户可以尝试通过重新命名表来破坏特权系统!

有关与特定特权相关的安全风险的更多信息,请参阅 第6.2.2节,"mysql提供的特权" .

可以通过一个帐户对服务器资源的使用设置限制,如以下所述: 第6.2.16节,"规定帐户资源限额" .为此,请使用WITH 指定一个或多个的条款resource_option 价值观。未指定的限额保留其当前值。它的语法和CREATE USER 声明。详情请参阅 第13.7.1.2节,"创建用户声明" .

注意事项

使用GRANT 在mysql5.7中,定义帐户资源限制是不被接受的。相反,建立或改变资源限额CREATE USER 或 ALTER USER .希望如此 GRANT 在未来的mysql版本中移除的能力。

千年发展目标和标准SQL赠款版本

mysql和标准SQL版本之间的最大差异GRANT 是:

  • Mysql将权限与主机名和用户名相关联,而不仅仅与用户名相关联。

  • 标准SQL没有全局或数据库级的特权,也不支持mysql支持的所有特权类型。

  • Mysql不支持标准SQL UNDER 特权。

  • 标准的SQL权限是以分层的方式结构化的。如果您删除了一个用户,则撤销了所有授予该用户的权限。在mysql中也是如此DROP USER .看 第13.7.1.3节,"放弃用户说明" .

  • 在标准SQL中,当您放下表时,将撤销表的所有特权。在标准SQL中,当您撤销权限时,基于该权限授予的所有权限也将被撤销。在mysql中,可以删除DROP USER 或 REVOKE 声明。

  • 在mysql中,有可能 INSERT 只对表中的一些列给予特权。在这种情况下,你仍然可以INSERT 表中的语句,只要您只为那些您拥有 INSERT 特权。如果不启用严格的SQL模式,则将省略列设置为其隐式默认值。在严格的模式下,如果任何省略列没有默认值,则拒绝该语句。(标准SQL要求您拥有 INSERT 所有列都有特权。)有关严格的SQL模式及隐含默认值的资料,请参阅 5.1.10节,"服务器SQL模式" ,以及 第11.6节,"数据类型默认值" .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

享元模式介绍

目录 一、享元模式介绍 1.1 享元模式定义 1.2 享元模式原理 1.2.1 享元模式类图 1.2.2 模式角色说明 1.2.3 示例代码 二、享元模式的应用 2.1 需求说明 2.2 需求实现 2.2.1 类图 2.2.2 具体实现 2.2.2.1 抽象享元类 2.2.2.2 共享享元类-白色棋子 2.2.2.3 共享享元…

计算机网络——运输层(1)暨小程送书

计算机网络——运输层(1)暨小程送书 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 运输层概述两个主要协议运输层和网络层的关系网络层运输层总结 多路复用与多路分解多路复用多路分解不同的技术实现时分复用(TDM)频分复…

[STM32F407ZET6] GPIO

GPIO模式 F4的GPIO功能比F1的功能更多一些, 但是整体框架一样. F4的输出配置和F1的不同, F4的配置后, 施密特触发器将会开启, 还会对输入寄存器进行采样读取. F1的配置后, 推挽输出将会关闭施密特触发器, 开漏模式读取会读输入寄存器, 推挽模式会读取输出寄存器的值. 输出(全…

Java毕业设计-基于jsp+servlet的家用电器购物商城管理系统-第87期

获取源码资料,请移步从戎源码网:从戎源码网_专业的计算机毕业设计网站 项目介绍 基于jspservlet的家用电器购物商城管理系统:前端 jsp、jquery、layui,后端 servlet、jdbc,角色分为管理员、用户;集成商品…

分布式Erlang/OTP(学习笔记)(一)

Erlang分布式基础 假设你在机器A和机器B上各跑着一个Simple Cache应用的实例。要是在机器A的缓存上插人一个键/值对之后,从机器B上也可以访问,那可就好了。显然,要达到这个目的,机器A必须以某种方式将相关信息告知给机器B。传递该…

macOS向ntfs格式的移动硬盘写数据

最近想把日常拍摄的照片从SD存储卡中转存到闲置的移动硬盘中,但是转存的时候发现,mac只能读我硬盘里的东西,无法将数据写入到移动硬盘中,也无法删除移动硬盘的数据。后来在网上查了许久资料,终于可实现mac对移动硬盘写…

修改iview的表格table展开的默认icon和样式

修改前 修改后 修改内容 .title_label_list .ivu-icon-ios-add{font-size: 26px;color: #888888; } .title_label_list .ivu-icon-ios-add:hover{color: #11AAAA; } .title_label_list .ivu-icon-ios-add:before {content: "\F341"; } .title_label_list .ivu-icon-…

Vue3/Vue2实现文章内容中多个“关键词“标记高亮显示

一、实现效果 下拉列表高亮展示关键词 二、实现思路 安装 “vue-word-highlighter” ,这是一个 支持 Vue3 和 Vue2,不过 Vue2 版本是通过 vue-demi 构建的 三、案例代码 package.json "vue-word-highlighter": "^1.0.4"Vue3 …

银河麒麟服务器操作系统搭建证书服务器并颁发可用于签名的证书步骤说明

银河麒麟服务器操作系统搭建证书服务器并颁发可用于签名的证书的方法与前面Centos7上(centos7 使用openssl 配置证书服务器并颁发证书(史上最详细版本)_centos phpinfo显示的openssl配置项为/etc/pki/tls/openssl.c-CSDN博客)是一…

蓝桥杯Java组备赛--算法训练 kAc给糖果你吃

题目 问题描述 kAc有n堆糖果,每堆有A[i]个。 kAc说你只能拿m次糖果,聪明的你当然想要拿最多的糖果来吃啦啦啦~ //第二天,kAc问你还想吃糖果么?(嘿嘿嘿)说着眼角路出奇怪的微笑...输入格式 第一行两个数字…

【计算机组成与体系结构Ⅱ】多Cache一致性的模拟分析(实验)

实验八:多Cache一致性的模拟分析 一、实验目的 1:加深对多 Cache 一致性的理解。 2:进一步掌握解决多 Cache一致性的目录协议和监听协议的基本思想。 3:掌握在各种情况下, 目录协议和监听协议是如何工作的&#xf…

跨Android、iOS、鸿蒙多平台框架ArkUI-X

ArkUI是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,帮助您提升移动应用界面开发效率30%。您只需使用一套ArkTS API,就能在Android、iOS、鸿蒙多个平台上提供生动而流畅的用户界面体验。 一…

spring项目中自定义钩子函数实现常用功能

在Spring项目中,自定义钩子函数(Hook Function)是一种常见的方式,用于实现一些常用功能或在特定生命周期事件发生时执行一些操作。以下是一些在Spring项目中常见的功能和如何通过自定义钩子函数来实现: 日志记录&#…

16.7 基于递归神经网络的分层多楼多层室内定位

文献来源:西交利物浦大学 Elesawi A E A, Kim K S. Hierarchical multi-building and multi-floor indoor localization based on recurrent neural networks[C]//2021 Ninth International Symposium on Computing and Networking Workshops (CANDARW). IEEE, 202…

MySQL优化之SQL调优策略

首先以一张思维导图从全局上给大家分享以下几种SQL优化策略,再详细讲解 1、避免使用SELECT * 在阿里的编码规范中也强制了数据库查询不能使用SELECT *,因为SELECT *方式走的都是全表扫描,导致的结果就是查询效率非常低下,其原因为…

苹果笔记本 macbook 在 office word 中使用 mathtype 的方法

前言 想在 MacBook 中使用 mathtype,去搜索,去 Apple Store 下载也发现没有 解决方法 打开 office Word 的「插入」中的「获取加载项」、「我的加载项」。 在应用商店中下载,需要登录自己的微软账号。 加载成功后就可以使用了。 注意 和…

【Unity实战100例】Unity对Ini格式的配置文件管理和读写

目录 一.编写ini格式配置文件 二.读取解析ini文件 三.调用属性 INI 文件以文本形式存储,易于阅读和编辑。这种人可读的格式使得调整配置参数变得更加直观,不需要专门的工具。 INI 文件是一种轻量级的配置文件格式,不需要复杂的解析器或库。它的结构相对简单,适用于小到

What is `addFormattersdoes` in `WebMvcConfigurer` ?

addFormatters 方法在SpringMVC框架中主要用于向Spring容器注册自定义的格式化器(Formatter) SpringMVC内置了一系列的标准格式化器,用于处理日期、数字和其他常见类型的转换。 开发者也可以通过实现 WebMvcConfigurer 接口,并重写…

Unix时间戳

时间戳,相信很多相关专业的人,计算机软件电子等等都会听过。由于最早是由Unix系统使用所以又叫Unix时间戳。 Unix 时间戳(Unix Timestamp)定义为从UTC(世界协调时)/GMT(格林尼治时)…

内网穿透的应用-使用Docker搭建一个Wiki.Js知识库系统并实现分享他人远程创作

文章目录 1. 安装Docker2. 获取Wiki.js镜像3. 本地服务器打开Wiki.js并添加知识库内容4. 实现公网访问Wiki.js5. 固定Wiki.js公网地址 不管是在企业中还是在自己的个人知识整理上,我们都需要通过某种方式来有条理的组织相应的知识架构,那么一个好的知识整…