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