Remove the very old historical but never documented behavior,
than an empty host '' is the same as any-host wildcard '%'. Replace '' with '%' in the parser (for GRANT ... foo@'') and when loading grant tables. Side effect: one cannot have foo@'' and foo@'%' both at the same time (but one can have foo@'%' and foo@'%%')
This commit is contained in:
parent
cefe5d964b
commit
4cc8cda346
@ -15,7 +15,7 @@ show grants;
|
|||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT r1 TO 'root'@'localhost'
|
GRANT r1 TO 'root'@'localhost'
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT USAGE ON *.* TO 'r1'
|
GRANT USAGE ON *.* TO 'r1'
|
||||||
drop role r1;
|
drop role r1;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
@ -23,4 +23,4 @@ HostFk UserFk RoleFk
|
|||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
|
@ -16,25 +16,25 @@ update mysql.user set Reload_priv='Y' where user like 'r_rld';
|
|||||||
update mysql.user set is_role='Y' where user like 'r\_%';
|
update mysql.user set is_role='Y' where user like 'r\_%';
|
||||||
select * from mysql.user where user='r_sel';
|
select * from mysql.user where user='r_sel';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
r_sel Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% r_sel Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
select * from mysql.user where user='r_ins';
|
select * from mysql.user where user='r_ins';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
r_ins N Y N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% r_ins N Y N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
select * from mysql.user where user='r_upd';
|
select * from mysql.user where user='r_upd';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
r_upd N N Y N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% r_upd N N Y N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
select * from mysql.user where user='r_del';
|
select * from mysql.user where user='r_del';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
r_del N N N Y N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% r_del N N N Y N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
select * from mysql.user where user='r_crt';
|
select * from mysql.user where user='r_crt';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
r_crt N N N N Y N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% r_crt N N N N Y N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
select * from mysql.user where user='r_drp';
|
select * from mysql.user where user='r_drp';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
r_drp N N N N N Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% r_drp N N N N N Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
select * from mysql.user where user='r_rld';
|
select * from mysql.user where user='r_rld';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
r_rld N N N N N N Y N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% r_rld N N N N N N Y N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
insert into mysql.roles_mapping (HostFk, UserFk, RoleFk) values ('localhost',
|
insert into mysql.roles_mapping (HostFk, UserFk, RoleFk) values ('localhost',
|
||||||
'test_user',
|
'test_user',
|
||||||
'r_sel');
|
'r_sel');
|
||||||
|
@ -12,8 +12,8 @@ insert into mysql.roles_mapping (HostFk, UserFk, RoleFk) values ('',
|
|||||||
flush privileges;
|
flush privileges;
|
||||||
select user, host from mysql.user where user not like 'root';
|
select user, host from mysql.user where user not like 'root';
|
||||||
user host
|
user host
|
||||||
test_role1
|
test_role1 %
|
||||||
test_role2
|
test_role2 %
|
||||||
test_user localhost
|
test_user localhost
|
||||||
select * from mysql.roles_mapping where UserFk like 'test_user';
|
select * from mysql.roles_mapping where UserFk like 'test_user';
|
||||||
HostFk UserFk RoleFk
|
HostFk UserFk RoleFk
|
||||||
@ -24,10 +24,11 @@ HostFk UserFk RoleFk
|
|||||||
grant select on *.* to 'test_role2'@'';
|
grant select on *.* to 'test_role2'@'';
|
||||||
select * from mysql.user where user like 'test_role1';
|
select * from mysql.user where user like 'test_role1';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
test_role1 N N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% test_role1 N N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
select * from mysql.user where user like 'test_role2';
|
select * from mysql.user where user like 'test_role2';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
test_role2 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
test_role2 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
|
% test_role2 N N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
flush privileges;
|
flush privileges;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
|
||||||
|
@ -6,7 +6,7 @@ insert into mysql.roles_mapping (HostFk, UserFk, RoleFk) values ('localhost',
|
|||||||
'test_role1');
|
'test_role1');
|
||||||
select user, host from mysql.user where user not like 'root';
|
select user, host from mysql.user where user not like 'root';
|
||||||
user host
|
user host
|
||||||
test_role1
|
test_role1 %
|
||||||
test_user localhost
|
test_user localhost
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
HostFk UserFk RoleFk
|
HostFk UserFk RoleFk
|
||||||
@ -14,7 +14,7 @@ localhost test_user test_role1
|
|||||||
grant select on *.* to 'test_role1'@'';
|
grant select on *.* to 'test_role1'@'';
|
||||||
select * from mysql.user where user='test_role1';
|
select * from mysql.user where user='test_role1';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
|
||||||
test_role1 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
% test_role1 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
|
||||||
flush privileges;
|
flush privileges;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
|
||||||
|
@ -569,7 +569,7 @@ USE test;
|
|||||||
SHOW GRANTS FOR CURRENT_USER;
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
SET GLOBAL event_scheduler = ON;
|
SET GLOBAL event_scheduler = ON;
|
||||||
CREATE TABLE events_test.event_log
|
CREATE TABLE events_test.event_log
|
||||||
(id int KEY AUTO_INCREMENT, ev_nm char(40), ev_cnt int, ev_tm timestamp)
|
(id int KEY AUTO_INCREMENT, ev_nm char(40), ev_cnt int, ev_tm timestamp)
|
||||||
|
@ -750,28 +750,28 @@ show grants for root@localhost;
|
|||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT SELECT ON `ÂÄ`.* TO 'root'@'localhost'
|
GRANT SELECT ON `ÂÄ`.* TO 'root'@'localhost'
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for root@localhost;
|
show grants for root@localhost;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT SELECT ON `ÂÄ`.* TO 'root'@'localhost'
|
GRANT SELECT ON `ÂÄ`.* TO 'root'@'localhost'
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
drop database ÂÄ;
|
drop database ÂÄ;
|
||||||
revoke all privileges on ÂÄ.* from root@localhost;
|
revoke all privileges on ÂÄ.* from root@localhost;
|
||||||
show grants for root@localhost;
|
show grants for root@localhost;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
set names latin1;
|
set names latin1;
|
||||||
create user mysqltest_7@;
|
create user mysqltest_7@;
|
||||||
set password for mysqltest_7@ = password('systpass');
|
set password for mysqltest_7@ = password('systpass');
|
||||||
show grants for mysqltest_7@;
|
show grants for mysqltest_7@;
|
||||||
Grants for mysqltest_7@
|
Grants for mysqltest_7@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_7'@'' IDENTIFIED BY PASSWORD '*2FB071A056F9BB745219D9C876814231DAF46517'
|
GRANT USAGE ON *.* TO 'mysqltest_7'@'%' IDENTIFIED BY PASSWORD '*2FB071A056F9BB745219D9C876814231DAF46517'
|
||||||
drop user mysqltest_7@;
|
drop user mysqltest_7@;
|
||||||
show grants for mysqltest_7@;
|
show grants for mysqltest_7@;
|
||||||
ERROR 42000: There is no such grant defined for user 'mysqltest_7' on host ''
|
ERROR 42000: There is no such grant defined for user 'mysqltest_7' on host '%'
|
||||||
create database mysqltest;
|
create database mysqltest;
|
||||||
use mysqltest;
|
use mysqltest;
|
||||||
create table t1(f1 int);
|
create table t1(f1 int);
|
||||||
@ -807,30 +807,28 @@ create table t2 as select * from mysql.user where user='';
|
|||||||
delete from mysql.user where user='';
|
delete from mysql.user where user='';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
create user mysqltest_8@'';
|
create user mysqltest_8@'';
|
||||||
create user mysqltest_8;
|
|
||||||
create user mysqltest_8@host8;
|
create user mysqltest_8@host8;
|
||||||
create user mysqltest_8@'';
|
create user mysqltest_8@'';
|
||||||
ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@''
|
ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@'%'
|
||||||
create user mysqltest_8;
|
create user mysqltest_8;
|
||||||
ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@'%'
|
ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@'%'
|
||||||
create user mysqltest_8@host8;
|
create user mysqltest_8@host8;
|
||||||
ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@'host8'
|
ERROR HY000: Operation CREATE USER failed for 'mysqltest_8'@'host8'
|
||||||
select user, QUOTE(host) from mysql.user where user="mysqltest_8";
|
select user, QUOTE(host) from mysql.user where user="mysqltest_8";
|
||||||
user QUOTE(host)
|
user QUOTE(host)
|
||||||
mysqltest_8 ''
|
|
||||||
mysqltest_8 '%'
|
mysqltest_8 '%'
|
||||||
mysqltest_8 'host8'
|
mysqltest_8 'host8'
|
||||||
Schema privileges
|
Schema privileges
|
||||||
grant select on mysqltest.* to mysqltest_8@'';
|
grant select on mysqltest.* to mysqltest_8@'';
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@''
|
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
||||||
grant select on mysqltest.* to mysqltest_8@;
|
grant select on mysqltest.* to mysqltest_8@;
|
||||||
show grants for mysqltest_8@;
|
show grants for mysqltest_8@;
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@''
|
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
||||||
grant select on mysqltest.* to mysqltest_8;
|
grant select on mysqltest.* to mysqltest_8;
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
@ -840,14 +838,12 @@ select * from information_schema.schema_privileges
|
|||||||
where grantee like "'mysqltest_8'%";
|
where grantee like "'mysqltest_8'%";
|
||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
'mysqltest_8'@'%' def mysqltest SELECT NO
|
'mysqltest_8'@'%' def mysqltest SELECT NO
|
||||||
'mysqltest_8'@'' def mysqltest SELECT NO
|
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
revoke select on mysqltest.* from mysqltest_8@'';
|
revoke select on mysqltest.* from mysqltest_8@'';
|
||||||
revoke select on mysqltest.* from mysqltest_8;
|
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
@ -856,35 +852,35 @@ where grantee like "'mysqltest_8'%";
|
|||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8@;
|
show grants for mysqltest_8@;
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
grant select on mysqltest.* to mysqltest_8@'';
|
grant select on mysqltest.* to mysqltest_8@'';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for mysqltest_8@;
|
show grants for mysqltest_8@;
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@''
|
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
||||||
revoke select on mysqltest.* from mysqltest_8@'';
|
revoke select on mysqltest.* from mysqltest_8@'';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
Column privileges
|
Column privileges
|
||||||
grant update (a) on t1 to mysqltest_8@'';
|
grant update (a) on t1 to mysqltest_8@'';
|
||||||
grant update (a) on t1 to mysqltest_8;
|
grant update (a) on t1 to mysqltest_8;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
|
GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
|
GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
@ -892,14 +888,12 @@ GRANT UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
|||||||
select * from information_schema.column_privileges;
|
select * from information_schema.column_privileges;
|
||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
'mysqltest_8'@'%' def test t1 a UPDATE NO
|
'mysqltest_8'@'%' def test t1 a UPDATE NO
|
||||||
'mysqltest_8'@'' def test t1 a UPDATE NO
|
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
revoke update (a) on t1 from mysqltest_8@'';
|
revoke update (a) on t1 from mysqltest_8@'';
|
||||||
revoke update (a) on t1 from mysqltest_8;
|
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
@ -907,8 +901,8 @@ select * from information_schema.column_privileges;
|
|||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
@ -916,18 +910,18 @@ Table privileges
|
|||||||
grant update on t1 to mysqltest_8@'';
|
grant update on t1 to mysqltest_8@'';
|
||||||
grant update on t1 to mysqltest_8;
|
grant update on t1 to mysqltest_8;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@''
|
GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@'%'
|
GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@''
|
GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
@ -935,14 +929,12 @@ GRANT UPDATE ON `test`.`t1` TO 'mysqltest_8'@'%'
|
|||||||
select * from information_schema.table_privileges;
|
select * from information_schema.table_privileges;
|
||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
'mysqltest_8'@'%' def test t1 UPDATE NO
|
'mysqltest_8'@'%' def test t1 UPDATE NO
|
||||||
'mysqltest_8'@'' def test t1 UPDATE NO
|
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
revoke update on t1 from mysqltest_8@'';
|
revoke update on t1 from mysqltest_8@'';
|
||||||
revoke update on t1 from mysqltest_8;
|
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
@ -950,8 +942,8 @@ select * from information_schema.table_privileges;
|
|||||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
@ -962,45 +954,36 @@ grant update on t1 to mysqltest_8@'';
|
|||||||
grant update (a) on t1 to mysqltest_8@'';
|
grant update (a) on t1 to mysqltest_8@'';
|
||||||
grant all privileges on mysqltest.* to mysqltest_8;
|
grant all privileges on mysqltest.* to mysqltest_8;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@''
|
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
|
GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
||||||
|
GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
select * from information_schema.user_privileges
|
select * from information_schema.user_privileges
|
||||||
where grantee like "'mysqltest_8'%";
|
where grantee like "'mysqltest_8'%";
|
||||||
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
|
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
|
||||||
'mysqltest_8'@'host8' def USAGE NO
|
'mysqltest_8'@'host8' def USAGE NO
|
||||||
'mysqltest_8'@'%' def USAGE NO
|
'mysqltest_8'@'%' def USAGE NO
|
||||||
'mysqltest_8'@'' def USAGE NO
|
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
flush privileges;
|
flush privileges;
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
Grants for mysqltest_8@
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@''
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@''
|
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
||||||
GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@''
|
GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
Grants for mysqltest_8@%
|
Grants for mysqltest_8@%
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
||||||
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
||||||
|
GRANT UPDATE, UPDATE (a) ON `test`.`t1` TO 'mysqltest_8'@'%'
|
||||||
drop user mysqltest_8@'';
|
drop user mysqltest_8@'';
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
ERROR 42000: There is no such grant defined for user 'mysqltest_8' on host ''
|
ERROR 42000: There is no such grant defined for user 'mysqltest_8' on host '%'
|
||||||
show grants for mysqltest_8;
|
|
||||||
Grants for mysqltest_8@%
|
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_8'@'%'
|
|
||||||
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_8'@'%'
|
|
||||||
select * from information_schema.user_privileges
|
|
||||||
where grantee like "'mysqltest_8'%";
|
|
||||||
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
|
|
||||||
'mysqltest_8'@'host8' def USAGE NO
|
|
||||||
'mysqltest_8'@'%' def USAGE NO
|
|
||||||
drop user mysqltest_8;
|
|
||||||
connect(localhost,mysqltest_8,,test,MASTER_PORT,MASTER_SOCKET);
|
connect(localhost,mysqltest_8,,test,MASTER_PORT,MASTER_SOCKET);
|
||||||
ERROR 28000: Access denied for user 'mysqltest_8'@'localhost' (using password: NO)
|
ERROR 28000: Access denied for user 'mysqltest_8'@'localhost' (using password: NO)
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
|
@ -7,11 +7,11 @@ flush status;
|
|||||||
show grants for current_user;
|
show grants for current_user;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
create database if not exists mysqltest;
|
create database if not exists mysqltest;
|
||||||
create table mysqltest.t1 (a int,b int,c int);
|
create table mysqltest.t1 (a int,b int,c int);
|
||||||
create table mysqltest.t2 (a int,b int,c int);
|
create table mysqltest.t2 (a int,b int,c int);
|
||||||
|
@ -7,11 +7,11 @@ flush status;
|
|||||||
show grants for current_user;
|
show grants for current_user;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
create database if not exists mysqltest;
|
create database if not exists mysqltest;
|
||||||
create table mysqltest.t1 (a int,b int,c int);
|
create table mysqltest.t1 (a int,b int,c int);
|
||||||
create table mysqltest.t2 (a int,b int,c int);
|
create table mysqltest.t2 (a int,b int,c int);
|
||||||
|
@ -116,7 +116,7 @@ ERROR 42000: There is no such grant defined for user 'grant_plug' on host '%'
|
|||||||
in grant_plug_dest_con
|
in grant_plug_dest_con
|
||||||
## testing what an ordinary user can grant
|
## testing what an ordinary user can grant
|
||||||
this should fail : no rights to grant all
|
this should fail : no rights to grant all
|
||||||
GRANT PROXY ON ''@'' TO grant_plug;
|
GRANT PROXY ON ''@'%%' TO grant_plug;
|
||||||
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
ERROR 28000: Access denied for user 'grant_plug_dest'@'localhost'
|
||||||
this should fail : not the same user
|
this should fail : not the same user
|
||||||
GRANT PROXY ON grant_plug TO grant_plug_dest;
|
GRANT PROXY ON grant_plug TO grant_plug_dest;
|
||||||
@ -139,15 +139,15 @@ ERROR 42000: You are not allowed to create a user with GRANT
|
|||||||
in default connection
|
in default connection
|
||||||
# test what root can grant
|
# test what root can grant
|
||||||
should work : root has PROXY to all users
|
should work : root has PROXY to all users
|
||||||
GRANT PROXY ON ''@'' TO grant_plug;
|
GRANT PROXY ON ''@'%%' TO grant_plug;
|
||||||
REVOKE PROXY ON ''@'' FROM grant_plug;
|
REVOKE PROXY ON ''@'%%' FROM grant_plug;
|
||||||
should work : root has PROXY to all users
|
should work : root has PROXY to all users
|
||||||
GRANT PROXY ON ''@'' TO proxy_admin IDENTIFIED BY 'test'
|
GRANT PROXY ON ''@'%%' TO proxy_admin IDENTIFIED BY 'test'
|
||||||
WITH GRANT OPTION;
|
WITH GRANT OPTION;
|
||||||
need USAGE : PROXY doesn't contain it.
|
need USAGE : PROXY doesn't contain it.
|
||||||
GRANT USAGE on *.* TO proxy_admin;
|
GRANT USAGE on *.* TO proxy_admin;
|
||||||
in proxy_admin_con;
|
in proxy_admin_con;
|
||||||
should work : proxy_admin has proxy to ''@''
|
should work : proxy_admin has proxy to ''@'%%'
|
||||||
GRANT PROXY ON future_user TO grant_plug;
|
GRANT PROXY ON future_user TO grant_plug;
|
||||||
in default connection
|
in default connection
|
||||||
SHOW GRANTS FOR grant_plug;
|
SHOW GRANTS FOR grant_plug;
|
||||||
@ -234,25 +234,25 @@ DROP USER plug_dest;
|
|||||||
# Bug #56798 : Wrong credentials assigned when using a proxy user.
|
# Bug #56798 : Wrong credentials assigned when using a proxy user.
|
||||||
#
|
#
|
||||||
GRANT ALL PRIVILEGES ON *.* TO power_user;
|
GRANT ALL PRIVILEGES ON *.* TO power_user;
|
||||||
GRANT USAGE ON anonymous_db.* TO ''@''
|
GRANT USAGE ON anonymous_db.* TO ''@'%%'
|
||||||
IDENTIFIED WITH 'test_plugin_server' AS 'power_user';
|
IDENTIFIED WITH 'test_plugin_server' AS 'power_user';
|
||||||
GRANT PROXY ON power_user TO ''@'';
|
GRANT PROXY ON power_user TO ''@'%%';
|
||||||
CREATE DATABASE confidential_db;
|
CREATE DATABASE confidential_db;
|
||||||
SELECT user(),current_user(),@@proxy_user;
|
SELECT user(),current_user(),@@proxy_user;
|
||||||
user() current_user() @@proxy_user
|
user() current_user() @@proxy_user
|
||||||
test_login_user@localhost power_user@% ''@''
|
test_login_user@localhost power_user@% ''@'%%'
|
||||||
DROP USER power_user;
|
DROP USER power_user;
|
||||||
DROP USER ''@'';
|
DROP USER ''@'%%';
|
||||||
DROP DATABASE confidential_db;
|
DROP DATABASE confidential_db;
|
||||||
# Test case #2 (crash with double grant proxy)
|
# Test case #2 (crash with double grant proxy)
|
||||||
CREATE USER ''@'' IDENTIFIED WITH 'test_plugin_server' AS 'standard_user';
|
CREATE USER ''@'%%' IDENTIFIED WITH 'test_plugin_server' AS 'standard_user';
|
||||||
CREATE USER standard_user;
|
CREATE USER standard_user;
|
||||||
CREATE DATABASE shared;
|
CREATE DATABASE shared;
|
||||||
GRANT ALL PRIVILEGES ON shared.* TO standard_user;
|
GRANT ALL PRIVILEGES ON shared.* TO standard_user;
|
||||||
GRANT PROXY ON standard_user TO ''@'';
|
GRANT PROXY ON standard_user TO ''@'%%';
|
||||||
#should not crash
|
#should not crash
|
||||||
GRANT PROXY ON standard_user TO ''@'';
|
GRANT PROXY ON standard_user TO ''@'%%';
|
||||||
DROP USER ''@'';
|
DROP USER ''@'%%';
|
||||||
DROP USER standard_user;
|
DROP USER standard_user;
|
||||||
DROP DATABASE shared;
|
DROP DATABASE shared;
|
||||||
#
|
#
|
||||||
|
@ -186,7 +186,7 @@ connection default;
|
|||||||
disconnect plug_user;
|
disconnect plug_user;
|
||||||
DROP USER new_user,new_dest,plug_dest;
|
DROP USER new_user,new_dest,plug_dest;
|
||||||
========== test 2, 2.1, 2.2 ================================
|
========== test 2, 2.1, 2.2 ================================
|
||||||
CREATE USER ''@'' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
CREATE USER ''@'%%' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
||||||
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
@ -204,7 +204,7 @@ connection default;
|
|||||||
disconnect proxy_con;
|
disconnect proxy_con;
|
||||||
connect(proxy_con,localhost,proxy_user,proxied_user);
|
connect(proxy_con,localhost,proxy_user,proxied_user);
|
||||||
ERROR 28000: Access denied for user 'proxy_user'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'proxy_user'@'localhost' (using password: YES)
|
||||||
GRANT PROXY ON proxied_user TO ''@'';
|
GRANT PROXY ON proxied_user TO ''@'%%';
|
||||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
SELECT USER(),CURRENT_USER();
|
SELECT USER(),CURRENT_USER();
|
||||||
USER() CURRENT_USER()
|
USER() CURRENT_USER()
|
||||||
@ -218,11 +218,11 @@ proxy_user@localhost proxied_user@%
|
|||||||
========== test 2.2.1 ======================================
|
========== test 2.2.1 ======================================
|
||||||
SELECT @@proxy_user;
|
SELECT @@proxy_user;
|
||||||
@@proxy_user
|
@@proxy_user
|
||||||
''@''
|
''@'%%'
|
||||||
connection default;
|
connection default;
|
||||||
disconnect proxy_con;
|
disconnect proxy_con;
|
||||||
DROP USER ''@'',proxied_user;
|
DROP USER ''@'%%',proxied_user;
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO ''@''
|
GRANT ALL PRIVILEGES ON test_user_db.* TO ''@'%%'
|
||||||
IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
||||||
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -240,7 +240,7 @@ connection default;
|
|||||||
disconnect proxy_con;
|
disconnect proxy_con;
|
||||||
connect(proxy_con,localhost,proxy_user,proxied_user);
|
connect(proxy_con,localhost,proxy_user,proxied_user);
|
||||||
ERROR 28000: Access denied for user 'proxy_user'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'proxy_user'@'localhost' (using password: YES)
|
||||||
GRANT PROXY ON proxied_user TO ''@'';
|
GRANT PROXY ON proxied_user TO ''@'%%';
|
||||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
SELECT USER(),CURRENT_USER();
|
SELECT USER(),CURRENT_USER();
|
||||||
USER() CURRENT_USER()
|
USER() CURRENT_USER()
|
||||||
@ -253,21 +253,21 @@ USER() CURRENT_USER()
|
|||||||
proxy_user@localhost proxied_user@%
|
proxy_user@localhost proxied_user@%
|
||||||
SELECT @@proxy_user;
|
SELECT @@proxy_user;
|
||||||
@@proxy_user
|
@@proxy_user
|
||||||
''@''
|
''@'%%'
|
||||||
connection default;
|
connection default;
|
||||||
disconnect proxy_con;
|
disconnect proxy_con;
|
||||||
DROP USER ''@'',proxied_user;
|
DROP USER ''@'%%',proxied_user;
|
||||||
CREATE USER ''@'' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
CREATE USER ''@'%%' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
||||||
CREATE USER proxied_user_1 IDENTIFIED BY 'proxied_user_1_pwd';
|
CREATE USER proxied_user_1 IDENTIFIED BY 'proxied_user_1_pwd';
|
||||||
CREATE USER proxied_user_2 IDENTIFIED BY 'proxied_user_2_pwd';
|
CREATE USER proxied_user_2 IDENTIFIED BY 'proxied_user_2_pwd';
|
||||||
CREATE USER proxied_user_3 IDENTIFIED BY 'proxied_user_3_pwd';
|
CREATE USER proxied_user_3 IDENTIFIED BY 'proxied_user_3_pwd';
|
||||||
CREATE USER proxied_user_4 IDENTIFIED BY 'proxied_user_4_pwd';
|
CREATE USER proxied_user_4 IDENTIFIED BY 'proxied_user_4_pwd';
|
||||||
CREATE USER proxied_user_5 IDENTIFIED BY 'proxied_user_5_pwd';
|
CREATE USER proxied_user_5 IDENTIFIED BY 'proxied_user_5_pwd';
|
||||||
GRANT PROXY ON proxied_user_1 TO ''@'';
|
GRANT PROXY ON proxied_user_1 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_2 TO ''@'';
|
GRANT PROXY ON proxied_user_2 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_3 TO ''@'';
|
GRANT PROXY ON proxied_user_3 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_4 TO ''@'';
|
GRANT PROXY ON proxied_user_4 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_5 TO ''@'';
|
GRANT PROXY ON proxied_user_5 TO ''@'%%';
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
user plugin authentication_string
|
user plugin authentication_string
|
||||||
test_plugin_server proxied_user
|
test_plugin_server proxied_user
|
||||||
@ -322,7 +322,7 @@ disconnect proxy_con_2;
|
|||||||
disconnect proxy_con_3;
|
disconnect proxy_con_3;
|
||||||
disconnect proxy_con_4;
|
disconnect proxy_con_4;
|
||||||
disconnect proxy_con_5;
|
disconnect proxy_con_5;
|
||||||
DROP USER ''@'',proxied_user_1,proxied_user_2,proxied_user_3,proxied_user_4,proxied_user_5;
|
DROP USER ''@'%%',proxied_user_1,proxied_user_2,proxied_user_3,proxied_user_4,proxied_user_5;
|
||||||
========== test 3 ==========================================
|
========== test 3 ==========================================
|
||||||
GRANT ALL PRIVILEGES ON *.* TO plug_user
|
GRANT ALL PRIVILEGES ON *.* TO plug_user
|
||||||
IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
IDENTIFIED WITH test_plugin_server AS 'plug_dest';
|
||||||
|
@ -36,14 +36,14 @@ CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT
|
|||||||
RETURN 3;
|
RETURN 3;
|
||||||
SHOW CREATE VIEW v3;
|
SHOW CREATE VIEW v3;
|
||||||
View Create View character_set_client collation_connection
|
View Create View character_set_client collation_connection
|
||||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1` latin1 latin1_swedish_ci
|
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`%` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1` latin1 latin1_swedish_ci
|
||||||
SHOW CREATE PROCEDURE p3;
|
SHOW CREATE PROCEDURE p3;
|
||||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||||
p3 CREATE DEFINER=`a`@`` PROCEDURE `p3`()
|
p3 CREATE DEFINER=`a`@`%` PROCEDURE `p3`()
|
||||||
SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci
|
SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
SHOW CREATE FUNCTION f3;
|
SHOW CREATE FUNCTION f3;
|
||||||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||||
f3 CREATE DEFINER=`a`@`` FUNCTION `f3`() RETURNS int(11)
|
f3 CREATE DEFINER=`a`@`%` FUNCTION `f3`() RETURNS int(11)
|
||||||
RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci
|
RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
DROP TRIGGER t1_bi;
|
DROP TRIGGER t1_bi;
|
||||||
DROP TRIGGER ti_ai;
|
DROP TRIGGER ti_ai;
|
||||||
|
@ -9,11 +9,11 @@ end|
|
|||||||
call bug4902()|
|
call bug4902()|
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
call bug4902()|
|
call bug4902()|
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
drop procedure bug4902|
|
drop procedure bug4902|
|
||||||
drop procedure if exists bug4902_2|
|
drop procedure if exists bug4902_2|
|
||||||
create procedure bug4902_2()
|
create procedure bug4902_2()
|
||||||
@ -156,11 +156,11 @@ create procedure 15298_2 () sql security definer show grants;
|
|||||||
call 15298_1();
|
call 15298_1();
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
call 15298_2();
|
call 15298_2();
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
drop procedure 15298_1;
|
drop procedure 15298_1;
|
||||||
drop procedure 15298_2;
|
drop procedure 15298_2;
|
||||||
|
@ -531,13 +531,13 @@ drop user mysqltest_1@localhost;
|
|||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
create definer=some_user@`` sql security invoker view v1 as select 1;
|
create definer=some_user@`` sql security invoker view v1 as select 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1449 The user specified as a definer ('some_user'@'') does not exist
|
Note 1449 The user specified as a definer ('some_user'@'%') does not exist
|
||||||
create definer=some_user@localhost sql security invoker view v2 as select 1;
|
create definer=some_user@localhost sql security invoker view v2 as select 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1449 The user specified as a definer ('some_user'@'localhost') does not exist
|
Note 1449 The user specified as a definer ('some_user'@'localhost') does not exist
|
||||||
show create view v1;
|
show create view v1;
|
||||||
View Create View character_set_client collation_connection
|
View Create View character_set_client collation_connection
|
||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1` latin1 latin1_swedish_ci
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`%` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1` latin1 latin1_swedish_ci
|
||||||
show create view v2;
|
show create view v2;
|
||||||
View Create View character_set_client collation_connection
|
View Create View character_set_client collation_connection
|
||||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select 1 AS `1` latin1 latin1_swedish_ci
|
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`some_user`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select 1 AS `1` latin1 latin1_swedish_ci
|
||||||
|
@ -573,7 +573,7 @@ root@localhost
|
|||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
drop trigger trg1_1;
|
drop trigger trg1_1;
|
||||||
use priv_db;
|
use priv_db;
|
||||||
|
|
||||||
|
@ -574,7 +574,7 @@ root@localhost
|
|||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
drop trigger trg1_1;
|
drop trigger trg1_1;
|
||||||
use priv_db;
|
use priv_db;
|
||||||
|
|
||||||
|
@ -574,7 +574,7 @@ root@localhost
|
|||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
drop trigger trg1_1;
|
drop trigger trg1_1;
|
||||||
use priv_db;
|
use priv_db;
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_
|
|||||||
SHOW GRANTS;
|
SHOW GRANTS;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
CREATE INDEX i_processlist ON processlist (user);
|
CREATE INDEX i_processlist ON processlist (user);
|
||||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||||
DROP TABLE processlist;
|
DROP TABLE processlist;
|
||||||
|
@ -70,7 +70,7 @@ ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_
|
|||||||
SHOW GRANTS;
|
SHOW GRANTS;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
CREATE INDEX i_processlist ON processlist (user);
|
CREATE INDEX i_processlist ON processlist (user);
|
||||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||||
DROP TABLE processlist;
|
DROP TABLE processlist;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
grant usage on *.* to 'pfs_user_5'@localhost with GRANT OPTION;
|
grant usage on *.* to 'pfs_user_5'@localhost with GRANT OPTION;
|
||||||
grant SELECT(thread_id, event_id) on performance_schema.events_waits_current
|
grant SELECT(thread_id, event_id) on performance_schema.events_waits_current
|
||||||
to 'pfs_user_5'@localhost;
|
to 'pfs_user_5'@localhost;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
show grants;
|
show grants;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
grant ALL on *.* to 'pfs_user_1'@localhost with GRANT OPTION;
|
grant ALL on *.* to 'pfs_user_1'@localhost with GRANT OPTION;
|
||||||
grant ALL on performance_schema.* to 'pfs_user_2'@localhost
|
grant ALL on performance_schema.* to 'pfs_user_2'@localhost
|
||||||
with GRANT OPTION;
|
with GRANT OPTION;
|
||||||
|
@ -190,7 +190,7 @@ GRANT EXECUTE ON PROCEDURE `test`.`p1` TO 'user49119'@'localhost'
|
|||||||
SHOW GRANTS FOR CURRENT_USER;
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
##############################################################
|
##############################################################
|
||||||
##############################################################
|
##############################################################
|
||||||
### Showing grants for both users: root and user49119 (master)
|
### Showing grants for both users: root and user49119 (master)
|
||||||
@ -201,7 +201,7 @@ GRANT EXECUTE ON PROCEDURE `test`.`p1` TO 'user49119'@'localhost'
|
|||||||
SHOW GRANTS FOR CURRENT_USER;
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
##############################################################
|
##############################################################
|
||||||
## This statement will make the revoke fail because root has no
|
## This statement will make the revoke fail because root has no
|
||||||
## execute grant. However, it will still revoke the grant for
|
## execute grant. However, it will still revoke the grant for
|
||||||
@ -217,7 +217,7 @@ GRANT USAGE ON *.* TO 'user49119'@'localhost'
|
|||||||
SHOW GRANTS FOR CURRENT_USER;
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
##############################################################
|
##############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
### Showing grants for both users: root and user49119 (slave)
|
### Showing grants for both users: root and user49119 (slave)
|
||||||
@ -228,7 +228,7 @@ GRANT USAGE ON *.* TO 'user49119'@'localhost'
|
|||||||
SHOW GRANTS FOR CURRENT_USER;
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
Grants for root@localhost
|
Grants for root@localhost
|
||||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
##############################################################
|
##############################################################
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
|
@ -587,7 +587,6 @@ flush privileges;
|
|||||||
|
|
||||||
# Create some users with different hostnames
|
# Create some users with different hostnames
|
||||||
create user mysqltest_8@'';
|
create user mysqltest_8@'';
|
||||||
create user mysqltest_8;
|
|
||||||
create user mysqltest_8@host8;
|
create user mysqltest_8@host8;
|
||||||
|
|
||||||
# Try to create them again
|
# Try to create them again
|
||||||
@ -614,7 +613,6 @@ select * from t1;
|
|||||||
disconnect conn3;
|
disconnect conn3;
|
||||||
connection master;
|
connection master;
|
||||||
revoke select on mysqltest.* from mysqltest_8@'';
|
revoke select on mysqltest.* from mysqltest_8@'';
|
||||||
revoke select on mysqltest.* from mysqltest_8;
|
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
select * from information_schema.schema_privileges
|
select * from information_schema.schema_privileges
|
||||||
@ -642,7 +640,6 @@ select * from t1;
|
|||||||
disconnect conn4;
|
disconnect conn4;
|
||||||
connection master;
|
connection master;
|
||||||
revoke update (a) on t1 from mysqltest_8@'';
|
revoke update (a) on t1 from mysqltest_8@'';
|
||||||
revoke update (a) on t1 from mysqltest_8;
|
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
select * from information_schema.column_privileges;
|
select * from information_schema.column_privileges;
|
||||||
@ -664,7 +661,6 @@ select * from t1;
|
|||||||
disconnect conn5;
|
disconnect conn5;
|
||||||
connection master;
|
connection master;
|
||||||
revoke update on t1 from mysqltest_8@'';
|
revoke update on t1 from mysqltest_8@'';
|
||||||
revoke update on t1 from mysqltest_8;
|
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
show grants for mysqltest_8;
|
show grants for mysqltest_8;
|
||||||
select * from information_schema.table_privileges;
|
select * from information_schema.table_privileges;
|
||||||
@ -692,10 +688,6 @@ show grants for mysqltest_8;
|
|||||||
drop user mysqltest_8@'';
|
drop user mysqltest_8@'';
|
||||||
--error ER_NONEXISTING_GRANT
|
--error ER_NONEXISTING_GRANT
|
||||||
show grants for mysqltest_8@'';
|
show grants for mysqltest_8@'';
|
||||||
show grants for mysqltest_8;
|
|
||||||
select * from information_schema.user_privileges
|
|
||||||
where grantee like "'mysqltest_8'%";
|
|
||||||
drop user mysqltest_8;
|
|
||||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||||
--error ER_ACCESS_DENIED_ERROR
|
--error ER_ACCESS_DENIED_ERROR
|
||||||
connect (conn6,localhost,mysqltest_8,,);
|
connect (conn6,localhost,mysqltest_8,,);
|
||||||
|
@ -168,7 +168,7 @@ connection grant_plug_dest_con;
|
|||||||
--echo ## testing what an ordinary user can grant
|
--echo ## testing what an ordinary user can grant
|
||||||
--echo this should fail : no rights to grant all
|
--echo this should fail : no rights to grant all
|
||||||
--error ER_ACCESS_DENIED_NO_PASSWORD_ERROR
|
--error ER_ACCESS_DENIED_NO_PASSWORD_ERROR
|
||||||
GRANT PROXY ON ''@'' TO grant_plug;
|
GRANT PROXY ON ''@'%%' TO grant_plug;
|
||||||
|
|
||||||
--echo this should fail : not the same user
|
--echo this should fail : not the same user
|
||||||
--error ER_ACCESS_DENIED_NO_PASSWORD_ERROR
|
--error ER_ACCESS_DENIED_NO_PASSWORD_ERROR
|
||||||
@ -211,11 +211,11 @@ disconnect grant_plug_dest_con;
|
|||||||
--echo # test what root can grant
|
--echo # test what root can grant
|
||||||
|
|
||||||
--echo should work : root has PROXY to all users
|
--echo should work : root has PROXY to all users
|
||||||
GRANT PROXY ON ''@'' TO grant_plug;
|
GRANT PROXY ON ''@'%%' TO grant_plug;
|
||||||
REVOKE PROXY ON ''@'' FROM grant_plug;
|
REVOKE PROXY ON ''@'%%' FROM grant_plug;
|
||||||
|
|
||||||
--echo should work : root has PROXY to all users
|
--echo should work : root has PROXY to all users
|
||||||
GRANT PROXY ON ''@'' TO proxy_admin IDENTIFIED BY 'test'
|
GRANT PROXY ON ''@'%%' TO proxy_admin IDENTIFIED BY 'test'
|
||||||
WITH GRANT OPTION;
|
WITH GRANT OPTION;
|
||||||
|
|
||||||
--echo need USAGE : PROXY doesn't contain it.
|
--echo need USAGE : PROXY doesn't contain it.
|
||||||
@ -225,7 +225,7 @@ connect (proxy_admin_con,localhost,proxy_admin,test);
|
|||||||
connection proxy_admin_con;
|
connection proxy_admin_con;
|
||||||
--echo in proxy_admin_con;
|
--echo in proxy_admin_con;
|
||||||
|
|
||||||
--echo should work : proxy_admin has proxy to ''@''
|
--echo should work : proxy_admin has proxy to ''@'%%'
|
||||||
GRANT PROXY ON future_user TO grant_plug;
|
GRANT PROXY ON future_user TO grant_plug;
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
@ -317,9 +317,9 @@ DROP USER plug_dest;
|
|||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
GRANT ALL PRIVILEGES ON *.* TO power_user;
|
GRANT ALL PRIVILEGES ON *.* TO power_user;
|
||||||
GRANT USAGE ON anonymous_db.* TO ''@''
|
GRANT USAGE ON anonymous_db.* TO ''@'%%'
|
||||||
IDENTIFIED WITH 'test_plugin_server' AS 'power_user';
|
IDENTIFIED WITH 'test_plugin_server' AS 'power_user';
|
||||||
GRANT PROXY ON power_user TO ''@'';
|
GRANT PROXY ON power_user TO ''@'%%';
|
||||||
CREATE DATABASE confidential_db;
|
CREATE DATABASE confidential_db;
|
||||||
|
|
||||||
connect(plug_con,localhost, test_login_user, power_user, confidential_db);
|
connect(plug_con,localhost, test_login_user, power_user, confidential_db);
|
||||||
@ -329,24 +329,23 @@ connection default;
|
|||||||
disconnect plug_con;
|
disconnect plug_con;
|
||||||
|
|
||||||
DROP USER power_user;
|
DROP USER power_user;
|
||||||
DROP USER ''@'';
|
DROP USER ''@'%%';
|
||||||
DROP DATABASE confidential_db;
|
DROP DATABASE confidential_db;
|
||||||
|
|
||||||
--echo # Test case #2 (crash with double grant proxy)
|
--echo # Test case #2 (crash with double grant proxy)
|
||||||
|
|
||||||
CREATE USER ''@'' IDENTIFIED WITH 'test_plugin_server' AS 'standard_user';
|
CREATE USER ''@'%%' IDENTIFIED WITH 'test_plugin_server' AS 'standard_user';
|
||||||
CREATE USER standard_user;
|
CREATE USER standard_user;
|
||||||
CREATE DATABASE shared;
|
CREATE DATABASE shared;
|
||||||
GRANT ALL PRIVILEGES ON shared.* TO standard_user;
|
GRANT ALL PRIVILEGES ON shared.* TO standard_user;
|
||||||
GRANT PROXY ON standard_user TO ''@'';
|
GRANT PROXY ON standard_user TO ''@'%%';
|
||||||
--echo #should not crash
|
--echo #should not crash
|
||||||
GRANT PROXY ON standard_user TO ''@'';
|
GRANT PROXY ON standard_user TO ''@'%%';
|
||||||
|
|
||||||
DROP USER ''@'';
|
DROP USER ''@'%%';
|
||||||
DROP USER standard_user;
|
DROP USER standard_user;
|
||||||
DROP DATABASE shared;
|
DROP DATABASE shared;
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug #57551 : Live upgrade fails between 5.1.52 -> 5.5.7-rc
|
--echo # Bug #57551 : Live upgrade fails between 5.1.52 -> 5.5.7-rc
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -184,7 +184,7 @@ DROP USER new_user,new_dest,plug_dest;
|
|||||||
|
|
||||||
--echo ========== test 2, 2.1, 2.2 ================================
|
--echo ========== test 2, 2.1, 2.2 ================================
|
||||||
|
|
||||||
CREATE USER ''@'' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
CREATE USER ''@'%%' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
||||||
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
@ -202,7 +202,7 @@ disconnect proxy_con;
|
|||||||
--error ER_ACCESS_DENIED_ERROR : this should fail : no grant
|
--error ER_ACCESS_DENIED_ERROR : this should fail : no grant
|
||||||
connect(proxy_con,localhost,proxy_user,proxied_user);
|
connect(proxy_con,localhost,proxy_user,proxied_user);
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
GRANT PROXY ON proxied_user TO ''@'';
|
GRANT PROXY ON proxied_user TO ''@'%%';
|
||||||
--echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
--echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
SELECT USER(),CURRENT_USER();
|
SELECT USER(),CURRENT_USER();
|
||||||
@ -219,9 +219,9 @@ SELECT @@proxy_user;
|
|||||||
connection default;
|
connection default;
|
||||||
--echo disconnect proxy_con;
|
--echo disconnect proxy_con;
|
||||||
disconnect proxy_con;
|
disconnect proxy_con;
|
||||||
DROP USER ''@'',proxied_user;
|
DROP USER ''@'%%',proxied_user;
|
||||||
#
|
#
|
||||||
GRANT ALL PRIVILEGES ON test_user_db.* TO ''@''
|
GRANT ALL PRIVILEGES ON test_user_db.* TO ''@'%%'
|
||||||
IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
||||||
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd';
|
||||||
--sorted_result
|
--sorted_result
|
||||||
@ -239,7 +239,7 @@ disconnect proxy_con;
|
|||||||
--error ER_ACCESS_DENIED_ERROR : this should fail : no grant
|
--error ER_ACCESS_DENIED_ERROR : this should fail : no grant
|
||||||
connect(proxy_con,localhost,proxy_user,proxied_user);
|
connect(proxy_con,localhost,proxy_user,proxied_user);
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
GRANT PROXY ON proxied_user TO ''@'';
|
GRANT PROXY ON proxied_user TO ''@'%%';
|
||||||
--echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
--echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
connect(proxy_con,localhost,proxied_user,proxied_user_passwd);
|
||||||
SELECT USER(),CURRENT_USER();
|
SELECT USER(),CURRENT_USER();
|
||||||
@ -255,19 +255,19 @@ SELECT @@proxy_user;
|
|||||||
connection default;
|
connection default;
|
||||||
--echo disconnect proxy_con;
|
--echo disconnect proxy_con;
|
||||||
disconnect proxy_con;
|
disconnect proxy_con;
|
||||||
DROP USER ''@'',proxied_user;
|
DROP USER ''@'%%',proxied_user;
|
||||||
#
|
#
|
||||||
CREATE USER ''@'' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
CREATE USER ''@'%%' IDENTIFIED WITH test_plugin_server AS 'proxied_user';
|
||||||
CREATE USER proxied_user_1 IDENTIFIED BY 'proxied_user_1_pwd';
|
CREATE USER proxied_user_1 IDENTIFIED BY 'proxied_user_1_pwd';
|
||||||
CREATE USER proxied_user_2 IDENTIFIED BY 'proxied_user_2_pwd';
|
CREATE USER proxied_user_2 IDENTIFIED BY 'proxied_user_2_pwd';
|
||||||
CREATE USER proxied_user_3 IDENTIFIED BY 'proxied_user_3_pwd';
|
CREATE USER proxied_user_3 IDENTIFIED BY 'proxied_user_3_pwd';
|
||||||
CREATE USER proxied_user_4 IDENTIFIED BY 'proxied_user_4_pwd';
|
CREATE USER proxied_user_4 IDENTIFIED BY 'proxied_user_4_pwd';
|
||||||
CREATE USER proxied_user_5 IDENTIFIED BY 'proxied_user_5_pwd';
|
CREATE USER proxied_user_5 IDENTIFIED BY 'proxied_user_5_pwd';
|
||||||
GRANT PROXY ON proxied_user_1 TO ''@'';
|
GRANT PROXY ON proxied_user_1 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_2 TO ''@'';
|
GRANT PROXY ON proxied_user_2 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_3 TO ''@'';
|
GRANT PROXY ON proxied_user_3 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_4 TO ''@'';
|
GRANT PROXY ON proxied_user_4 TO ''@'%%';
|
||||||
GRANT PROXY ON proxied_user_5 TO ''@'';
|
GRANT PROXY ON proxied_user_5 TO ''@'%%';
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
|
||||||
--echo connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd');
|
--echo connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd');
|
||||||
@ -312,7 +312,7 @@ disconnect proxy_con_3;
|
|||||||
disconnect proxy_con_4;
|
disconnect proxy_con_4;
|
||||||
--echo disconnect proxy_con_5;
|
--echo disconnect proxy_con_5;
|
||||||
disconnect proxy_con_5;
|
disconnect proxy_con_5;
|
||||||
DROP USER ''@'',proxied_user_1,proxied_user_2,proxied_user_3,proxied_user_4,proxied_user_5;
|
DROP USER ''@'%%',proxied_user_1,proxied_user_2,proxied_user_3,proxied_user_4,proxied_user_5;
|
||||||
|
|
||||||
--echo ========== test 3 ==========================================
|
--echo ========== test 3 ==========================================
|
||||||
|
|
||||||
|
@ -404,9 +404,7 @@ public:
|
|||||||
}
|
}
|
||||||
void set_host(MEM_ROOT *mem, const char *host_arg)
|
void set_host(MEM_ROOT *mem, const char *host_arg)
|
||||||
{
|
{
|
||||||
update_hostname(&host,
|
update_hostname(&host, safe_strdup_root(mem, host_arg));
|
||||||
(host_arg && *host_arg) ?
|
|
||||||
strdup_root(mem, host_arg) : NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_validity(bool check_no_resolve)
|
bool check_validity(bool check_no_resolve)
|
||||||
@ -1319,14 +1317,17 @@ static my_bool acl_load(THD *thd, TABLE_LIST *tables)
|
|||||||
while (!(read_record_info.read_record(&read_record_info)))
|
while (!(read_record_info.read_record(&read_record_info)))
|
||||||
{
|
{
|
||||||
ACL_DB db;
|
ACL_DB db;
|
||||||
update_hostname(&db.host,get_field(&mem, table->field[MYSQL_DB_FIELD_HOST]));
|
db.user=get_field(&mem, table->field[MYSQL_DB_FIELD_USER]);
|
||||||
|
const char *hostname= get_field(&mem, table->field[MYSQL_DB_FIELD_HOST]);
|
||||||
|
if (!hostname && find_acl_role(db.user))
|
||||||
|
hostname= "";
|
||||||
|
update_hostname(&db.host, hostname);
|
||||||
db.db=get_field(&mem, table->field[MYSQL_DB_FIELD_DB]);
|
db.db=get_field(&mem, table->field[MYSQL_DB_FIELD_DB]);
|
||||||
if (!db.db)
|
if (!db.db)
|
||||||
{
|
{
|
||||||
sql_print_warning("Found an entry in the 'db' table with empty database name; Skipped");
|
sql_print_warning("Found an entry in the 'db' table with empty database name; Skipped");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
db.user=get_field(&mem, table->field[MYSQL_DB_FIELD_USER]);
|
|
||||||
if (check_no_resolve && hostname_requires_resolving(db.host.hostname))
|
if (check_no_resolve && hostname_requires_resolving(db.host.hostname))
|
||||||
{
|
{
|
||||||
sql_print_warning("'db' entry '%s %s@%s' "
|
sql_print_warning("'db' entry '%s %s@%s' "
|
||||||
@ -1750,8 +1751,7 @@ bool acl_getroot(Security_context *sctx, char *user, char *host,
|
|||||||
DBUG_ENTER("acl_getroot");
|
DBUG_ENTER("acl_getroot");
|
||||||
|
|
||||||
DBUG_PRINT("enter", ("Host: '%s', Ip: '%s', User: '%s', db: '%s'",
|
DBUG_PRINT("enter", ("Host: '%s', Ip: '%s', User: '%s', db: '%s'",
|
||||||
(host ? host : "(NULL)"), (ip ? ip : "(NULL)"),
|
host, ip, user, db));
|
||||||
user, (db ? db : "(NULL)")));
|
|
||||||
sctx->user= user;
|
sctx->user= user;
|
||||||
sctx->host= host;
|
sctx->host= host;
|
||||||
sctx->ip= ip;
|
sctx->ip= ip;
|
||||||
@ -2105,7 +2105,7 @@ static void acl_insert_user(const char *user, const char *host,
|
|||||||
|
|
||||||
acl_user.user.str=*user ? strdup_root(&mem,user) : 0;
|
acl_user.user.str=*user ? strdup_root(&mem,user) : 0;
|
||||||
acl_user.user.length= strlen(user);
|
acl_user.user.length= strlen(user);
|
||||||
update_hostname(&acl_user.host, *host ? strdup_root(&mem, host): 0);
|
update_hostname(&acl_user.host, safe_strdup_root(&mem, host));
|
||||||
if (plugin->str[0])
|
if (plugin->str[0])
|
||||||
{
|
{
|
||||||
acl_user.plugin= *plugin;
|
acl_user.plugin= *plugin;
|
||||||
@ -2207,7 +2207,7 @@ static void acl_insert_db(const char *user, const char *host, const char *db,
|
|||||||
ACL_DB acl_db;
|
ACL_DB acl_db;
|
||||||
mysql_mutex_assert_owner(&acl_cache->lock);
|
mysql_mutex_assert_owner(&acl_cache->lock);
|
||||||
acl_db.user=strdup_root(&mem,user);
|
acl_db.user=strdup_root(&mem,user);
|
||||||
update_hostname(&acl_db.host, *host ? strdup_root(&mem,host) : 0);
|
update_hostname(&acl_db.host, safe_strdup_root(&mem, host));
|
||||||
acl_db.db=strdup_root(&mem,db);
|
acl_db.db=strdup_root(&mem,db);
|
||||||
acl_db.access=privileges;
|
acl_db.access=privileges;
|
||||||
if (set_initial_access)
|
if (set_initial_access)
|
||||||
@ -3161,10 +3161,11 @@ static const char *calc_ip(const char *ip, long *val, char end)
|
|||||||
|
|
||||||
static void update_hostname(acl_host_and_ip *host, const char *hostname)
|
static void update_hostname(acl_host_and_ip *host, const char *hostname)
|
||||||
{
|
{
|
||||||
|
// fix historical undocumented convention that empty host is the same as '%'
|
||||||
|
hostname=const_cast<char*>(hostname ? hostname : host_not_specified.str);
|
||||||
host->hostname=(char*) hostname; // This will not be modified!
|
host->hostname=(char*) hostname; // This will not be modified!
|
||||||
if (!hostname ||
|
if (!(hostname= calc_ip(hostname,&host->ip,'/')) ||
|
||||||
(!(hostname=calc_ip(hostname,&host->ip,'/')) ||
|
!(hostname= calc_ip(hostname+1,&host->ip_mask,'\0')))
|
||||||
!(hostname=calc_ip(hostname+1,&host->ip_mask,'\0'))))
|
|
||||||
{
|
{
|
||||||
host->ip= host->ip_mask=0; // Not a masked ip
|
host->ip= host->ip_mask=0; // Not a masked ip
|
||||||
}
|
}
|
||||||
@ -4154,11 +4155,18 @@ GRANT_TABLE::GRANT_TABLE(GRANT_TABLE *source, char *u)
|
|||||||
|
|
||||||
GRANT_NAME::GRANT_NAME(TABLE *form, bool is_routine)
|
GRANT_NAME::GRANT_NAME(TABLE *form, bool is_routine)
|
||||||
{
|
{
|
||||||
update_hostname(&host, get_field(&memex, form->field[0]));
|
|
||||||
db= get_field(&memex,form->field[1]);
|
|
||||||
user= get_field(&memex,form->field[2]);
|
user= get_field(&memex,form->field[2]);
|
||||||
if (!user)
|
if (!user)
|
||||||
user= (char*) "";
|
user= (char*) "";
|
||||||
|
|
||||||
|
const char *hostname= get_field(&memex, form->field[0]);
|
||||||
|
mysql_mutex_lock(&acl_cache->lock);
|
||||||
|
if (!hostname && find_acl_role(user))
|
||||||
|
hostname= "";
|
||||||
|
mysql_mutex_unlock(&acl_cache->lock);
|
||||||
|
update_hostname(&host, hostname);
|
||||||
|
|
||||||
|
db= get_field(&memex,form->field[1]);
|
||||||
sort= get_sort(3, host.hostname, db, user);
|
sort= get_sort(3, host.hostname, db, user);
|
||||||
tname= get_field(&memex,form->field[3]);
|
tname= get_field(&memex,form->field[3]);
|
||||||
if (!db || !tname)
|
if (!db || !tname)
|
||||||
@ -8897,6 +8905,9 @@ bool mysql_create_user(THD *thd, List <LEX_USER> &list, bool handle_as_role)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!user_name->host.str)
|
||||||
|
user_name->host= host_not_specified;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Search all in-memory structures and grant tables
|
Search all in-memory structures and grant tables
|
||||||
for a mention of the new user/role name.
|
for a mention of the new user/role name.
|
||||||
|
@ -13197,12 +13197,23 @@ user:
|
|||||||
system_charset_info, 0) ||
|
system_charset_info, 0) ||
|
||||||
check_host_name(&$$->host))
|
check_host_name(&$$->host))
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
/*
|
if ($$->host.str[0])
|
||||||
Convert hostname part of username to lowercase.
|
{
|
||||||
It's OK to use in-place lowercase as long as
|
/*
|
||||||
the character set is utf8.
|
Convert hostname part of username to lowercase.
|
||||||
*/
|
It's OK to use in-place lowercase as long as
|
||||||
my_casedn_str(system_charset_info, $$->host.str);
|
the character set is utf8.
|
||||||
|
*/
|
||||||
|
my_casedn_str(system_charset_info, $$->host.str);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
fix historical undocumented convention that empty host is the
|
||||||
|
same as '%'
|
||||||
|
*/
|
||||||
|
$$->host= host_not_specified;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
| CURRENT_USER optional_braces
|
| CURRENT_USER optional_braces
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user