mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-17658 change the structure of mysql.user table
Implement User_table_json. Fix scripts to use mysql.global_priv. Fix tests.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Allow anonymous users to connect
|
||||
disable_warnings;
|
||||
disable_query_log;
|
||||
INSERT IGNORE INTO mysql.user (host, user) VALUES ('localhost','');
|
||||
INSERT IGNORE INTO mysql.global_priv (host, user) VALUES ('localhost','');
|
||||
FLUSH PRIVILEGES;
|
||||
enable_query_log;
|
||||
enable_warnings;
|
||||
|
@@ -95,7 +95,7 @@ BEGIN
|
||||
mysql.time_zone_name,
|
||||
mysql.time_zone_transition,
|
||||
mysql.time_zone_transition_type,
|
||||
mysql.user;
|
||||
mysql.global_priv;
|
||||
|
||||
-- verify that no plugin changed its disabled/enabled state
|
||||
SELECT * FROM INFORMATION_SCHEMA.PLUGINS;
|
||||
|
6
mysql-test/include/switch_to_mysql_global_priv.inc
Normal file
6
mysql-test/include/switch_to_mysql_global_priv.inc
Normal file
@@ -0,0 +1,6 @@
|
||||
disable_query_log;
|
||||
drop table mysql.user;
|
||||
rename table mysql.user_bak to mysql.user;
|
||||
rename table mysql.global_priv_bak to mysql.global_priv;
|
||||
flush privileges;
|
||||
enable_query_log;
|
56
mysql-test/include/switch_to_mysql_user.inc
Normal file
56
mysql-test/include/switch_to_mysql_user.inc
Normal file
@@ -0,0 +1,56 @@
|
||||
disable_query_log;
|
||||
rename table mysql.user to mysql.user_bak;
|
||||
CREATE TABLE mysql.user (
|
||||
Host char(60) binary DEFAULT '' NOT NULL,
|
||||
User char(80) binary DEFAULT '' NOT NULL,
|
||||
Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL,
|
||||
Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Create_tablespace_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
Delete_history_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
ssl_type enum('','ANY','X509','SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL,
|
||||
ssl_cipher BLOB NOT NULL,
|
||||
x509_issuer BLOB NOT NULL,
|
||||
x509_subject BLOB NOT NULL,
|
||||
max_questions int(11) unsigned DEFAULT 0 NOT NULL,
|
||||
max_updates int(11) unsigned DEFAULT 0 NOT NULL,
|
||||
max_connections int(11) unsigned DEFAULT 0 NOT NULL,
|
||||
max_user_connections int(11) DEFAULT 0 NOT NULL,
|
||||
plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL,
|
||||
authentication_string TEXT NOT NULL,
|
||||
password_expired ENUM('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
is_role enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
default_role char(80) binary DEFAULT '' NOT NULL,
|
||||
max_statement_time decimal(12,6) DEFAULT 0 NOT NULL,
|
||||
PRIMARY KEY Host (Host,User)
|
||||
) engine=Aria transactional=1 CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges';
|
||||
insert mysql.user select * from mysql.user_bak;
|
||||
rename table mysql.global_priv to mysql.global_priv_bak;
|
||||
flush privileges;
|
||||
enable_query_log;
|
@@ -7,6 +7,7 @@ show tables;
|
||||
show create table db;
|
||||
show create table user;
|
||||
show create table func;
|
||||
show create table global_priv;
|
||||
show create table tables_priv;
|
||||
show create table columns_priv;
|
||||
show create table procs_priv;
|
||||
|
Reference in New Issue
Block a user