Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
The suggestion:
Create new table
CREATE TABLE mysql.global_priv ( |
Host char(60) binary DEFAULT '' NOT NULL, |
User char(80) binary DEFAULT '' NOT NULL, |
data JSON,
|
UNIQUE(host,user) |
)
|
The data might looks like
{
|
"SELECT":"Y", |
"SUPER":"N", |
...
|
"plugin":"mysql_native_password", |
...
|
}
|
and a view:
CREATE VIEW mysql.user AS SELECT |
Host, User, |
IF(JSON_VALUE(data,"plugin") IN ("mysql_native_password", "mysql_old_password"), |
JSON_VALUE(data, "authentication_string"),"") as Password |
...
|
FROM mysql.global_priv; |
the view will show the same data that old mysql.user table had.
The script mysql_fix_system_tables.sql should create new table and move data over.
Also it should convert grants on mysql.user to grants on mysql.global_priv.
Attachments
Issue Links
- blocks
-
MDEV-7597 Expiration of user passwords
-
- Closed
-
-
MDEV-11340 Allow multiple alternative authentication methods for the same user
-
- Closed
-
-
MDEV-13095 Implement user account locking
-
- Closed
-
- causes
-
MDEV-21486 Implement option for mysql_install_db that allows root@localhost to be replaced
-
- Closed
-
-
MDEV-21487 Implement option for mysql_upgrade that allows root@localhost to be replaced
-
- Closed
-
-
MDEV-29542 The first character in column name has lowercase instead of uppercase in view created on table " mysql.user"
-
- Closed
-
-
MDEV-32209 mariadb cannot import 10.3 or older mysqldump-produced dumps anymore
-
- Open
-
- includes
-
MDEV-12715 remove mysql.user.password column
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue blocks |
Link |
This issue blocks |
Description |
The suggestion:
Create new table {code:sql} CREATE TABLE mysql.global.priv ( Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, data JSON, UNIQUE(host,user) ) {code} The data might looks like {code:javascript} { "SELECT":"Y", "SUPER":"N", ... "plugin":"mysql_native_password", ... } {code} and a view: {code:sql} CREATE VIEW mysql.user AS SELECT Host, User, IF(JSON_VALUE(data,"plugin") IN ("mysql_native_password", "mysql_old_password"), JSON_VALUE(data, "authentication_string"),"") as Password ... FROM mysql.global_priv; {code} the view will show the same data that old {{mysql.user}} table had. The script {{mysql_fix_system_tables.sql}} should create new table and move data over. |
The suggestion:
Create new table {code:sql} CREATE TABLE mysql.global_priv ( Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, data JSON, UNIQUE(host,user) ) {code} The data might looks like {code:javascript} { "SELECT":"Y", "SUPER":"N", ... "plugin":"mysql_native_password", ... } {code} and a view: {code:sql} CREATE VIEW mysql.user AS SELECT Host, User, IF(JSON_VALUE(data,"plugin") IN ("mysql_native_password", "mysql_old_password"), JSON_VALUE(data, "authentication_string"),"") as Password ... FROM mysql.global_priv; {code} the view will show the same data that old {{mysql.user}} table had. The script {{mysql_fix_system_tables.sql}} should create new table and move data over. |
Epic Link | PT-73 [ 68549 ] |
Link |
This issue includes |
Rank | Ranked higher |
Status | Open [ 1 ] | In Progress [ 3 ] |
Description |
The suggestion:
Create new table {code:sql} CREATE TABLE mysql.global_priv ( Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, data JSON, UNIQUE(host,user) ) {code} The data might looks like {code:javascript} { "SELECT":"Y", "SUPER":"N", ... "plugin":"mysql_native_password", ... } {code} and a view: {code:sql} CREATE VIEW mysql.user AS SELECT Host, User, IF(JSON_VALUE(data,"plugin") IN ("mysql_native_password", "mysql_old_password"), JSON_VALUE(data, "authentication_string"),"") as Password ... FROM mysql.global_priv; {code} the view will show the same data that old {{mysql.user}} table had. The script {{mysql_fix_system_tables.sql}} should create new table and move data over. |
The suggestion:
Create new table {code:sql} CREATE TABLE mysql.global_priv ( Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, data JSON, UNIQUE(host,user) ) {code} The data might looks like {code:javascript} { "SELECT":"Y", "SUPER":"N", ... "plugin":"mysql_native_password", ... } {code} and a view: {code:sql} CREATE VIEW mysql.user AS SELECT Host, User, IF(JSON_VALUE(data,"plugin") IN ("mysql_native_password", "mysql_old_password"), JSON_VALUE(data, "authentication_string"),"") as Password ... FROM mysql.global_priv; {code} the view will show the same data that old {{mysql.user}} table had. The script {{mysql_fix_system_tables.sql}} should create new table and move data over. Also it should convert grants on {{mysql.user}} to grants on {{mysql.global_priv}}. |
Assignee | Sergei Golubchik [ serg ] | Alexey Botchkov [ holyfoot ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Fix Version/s | 10.4.1 [ 23228 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Assignee | Alexey Botchkov [ holyfoot ] | Sergei Golubchik [ serg ] |
Workflow | MariaDB v3 [ 90528 ] | MariaDB v4 [ 133743 ] |
Link |
This issue causes |
Link | This issue causes MDEV-32209 [ MDEV-32209 ] |