mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Use mysql.user.authentication_string for password
Don't distinguish between a "password hash" and "authentication string" anymore. Now both are stored in mysql.user.authentication_string, both are handled identically internally. A "password hash" is just how some particular plugins interpret authentication string. Set mysql.user.plugin even if there is no password. The server will use mysql_native_password plugin in these cases, let's make it expicit. Remove LEX_USER::pwhash.
This commit is contained in:
@@ -17,15 +17,15 @@ CURRENT_USER
|
||||
u2@localhost
|
||||
disconnect user_a;
|
||||
connection master;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
user password
|
||||
u1 *D9553C4CE316A9845CE49E30A2D7E3857AF966C4
|
||||
u2
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
user password plugin authentication_string
|
||||
u1 mysql_native_password *D9553C4CE316A9845CE49E30A2D7E3857AF966C4
|
||||
u2 mysql_native_password
|
||||
connection slave;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
user password
|
||||
u1 *D9553C4CE316A9845CE49E30A2D7E3857AF966C4
|
||||
u2
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
user password plugin authentication_string
|
||||
u1 mysql_native_password *D9553C4CE316A9845CE49E30A2D7E3857AF966C4
|
||||
u2 mysql_native_password
|
||||
connection master;
|
||||
CREATE OR REPLACE USER u1@localhost IDENTIFIED BY 'abcdefghijk2';
|
||||
connect user_a, localhost, u1,'abcdefghijk2',;
|
||||
@@ -35,25 +35,25 @@ CURRENT_USER
|
||||
u1@localhost
|
||||
disconnect user_a;
|
||||
connection master;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
user password
|
||||
u1 *A9A5EF53CE2EFAA6F4A746D63A917B2370971A7E
|
||||
u2
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
user password plugin authentication_string
|
||||
u1 mysql_native_password *A9A5EF53CE2EFAA6F4A746D63A917B2370971A7E
|
||||
u2 mysql_native_password
|
||||
connection slave;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
user password
|
||||
u1 *A9A5EF53CE2EFAA6F4A746D63A917B2370971A7E
|
||||
u2
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
user password plugin authentication_string
|
||||
u1 mysql_native_password *A9A5EF53CE2EFAA6F4A746D63A917B2370971A7E
|
||||
u2 mysql_native_password
|
||||
connection master;
|
||||
CREATE USER u1@localhost;
|
||||
ERROR HY000: Operation CREATE USER failed for 'u1'@'localhost'
|
||||
DROP USER u3@localhost;
|
||||
ERROR HY000: Operation DROP USER failed for 'u3'@'localhost'
|
||||
connection slave;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
user password
|
||||
u1 *A9A5EF53CE2EFAA6F4A746D63A917B2370971A7E
|
||||
u2
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
user password plugin authentication_string
|
||||
u1 mysql_native_password *A9A5EF53CE2EFAA6F4A746D63A917B2370971A7E
|
||||
u2 mysql_native_password
|
||||
connection master;
|
||||
DROP USER IF EXISTS u1@localhost;
|
||||
DROP USER u2@localhost;
|
||||
@@ -61,6 +61,6 @@ DROP USER IF EXISTS u3@localhost;
|
||||
Warnings:
|
||||
Note 1974 Can't drop user 'u3'@'localhost'; it doesn't exist
|
||||
connection slave;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
user password
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
user password plugin authentication_string
|
||||
include/rpl_end.inc
|
||||
|
@@ -482,36 +482,36 @@ SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||
CREATE USER 'user_test_rpl'@'localhost' IDENTIFIED BY PASSWORD '*1111111111111111111111111111111111111111';
|
||||
SELECT host, user, password, plugin, authentication_string, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
|
||||
host user password plugin authentication_string select_priv
|
||||
localhost user_test_rpl *1111111111111111111111111111111111111111 N
|
||||
localhost user_test_rpl mysql_native_password *1111111111111111111111111111111111111111 N
|
||||
connection slave;
|
||||
USE test_rpl;
|
||||
SELECT host, user, password, plugin, authentication_string, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
|
||||
host user password plugin authentication_string select_priv
|
||||
localhost user_test_rpl *1111111111111111111111111111111111111111 N
|
||||
localhost user_test_rpl mysql_native_password *1111111111111111111111111111111111111111 N
|
||||
connection master;
|
||||
|
||||
******************** GRANT ********************
|
||||
GRANT SELECT ON *.* TO 'user_test_rpl'@'localhost';
|
||||
SELECT host, user, password, plugin, authentication_string, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
|
||||
host user password plugin authentication_string select_priv
|
||||
localhost user_test_rpl *1111111111111111111111111111111111111111 Y
|
||||
localhost user_test_rpl mysql_native_password *1111111111111111111111111111111111111111 Y
|
||||
connection slave;
|
||||
USE test_rpl;
|
||||
SELECT host, user, password, plugin, authentication_string, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
|
||||
host user password plugin authentication_string select_priv
|
||||
localhost user_test_rpl *1111111111111111111111111111111111111111 Y
|
||||
localhost user_test_rpl mysql_native_password *1111111111111111111111111111111111111111 Y
|
||||
connection master;
|
||||
|
||||
******************** REVOKE ********************
|
||||
REVOKE SELECT ON *.* FROM 'user_test_rpl'@'localhost';
|
||||
SELECT host, user, password, plugin, authentication_string, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
|
||||
host user password plugin authentication_string select_priv
|
||||
localhost user_test_rpl *1111111111111111111111111111111111111111 N
|
||||
localhost user_test_rpl mysql_native_password *1111111111111111111111111111111111111111 N
|
||||
connection slave;
|
||||
USE test_rpl;
|
||||
SELECT host, user, password, plugin, authentication_string, select_priv FROM mysql.user WHERE user LIKE 'user_test_rpl%';
|
||||
host user password plugin authentication_string select_priv
|
||||
localhost user_test_rpl *1111111111111111111111111111111111111111 N
|
||||
localhost user_test_rpl mysql_native_password *1111111111111111111111111111111111111111 N
|
||||
connection master;
|
||||
|
||||
******************** SET PASSWORD ********************
|
||||
|
@@ -15,9 +15,11 @@ SELECT CURRENT_USER;
|
||||
disconnect user_a;
|
||||
|
||||
connection master;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
--sorted_result
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
sync_slave_with_master;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
--sorted_result
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
|
||||
connection master;
|
||||
CREATE OR REPLACE USER u1@localhost IDENTIFIED BY 'abcdefghijk2';
|
||||
@@ -26,9 +28,11 @@ connection user_a;
|
||||
SELECT CURRENT_USER;
|
||||
disconnect user_a;
|
||||
connection master;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
--sorted_result
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
sync_slave_with_master;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
--sorted_result
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
|
||||
connection master;
|
||||
--error ER_CANNOT_USER
|
||||
@@ -38,7 +42,8 @@ CREATE USER u1@localhost;
|
||||
DROP USER u3@localhost;
|
||||
|
||||
sync_slave_with_master;
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
--sorted_result
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
|
||||
connection master;
|
||||
DROP USER IF EXISTS u1@localhost;
|
||||
@@ -46,6 +51,7 @@ DROP USER u2@localhost;
|
||||
DROP USER IF EXISTS u3@localhost;
|
||||
sync_slave_with_master;
|
||||
|
||||
SELECT user, password FROM mysql.user WHERE user LIKE 'u%' ORDER BY user;
|
||||
--sorted_result
|
||||
SELECT user,password,plugin,authentication_string FROM mysql.user WHERE user LIKE 'u%' ;
|
||||
|
||||
--source include/rpl_end.inc
|
||||
|
Reference in New Issue
Block a user