Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $plainpass) {
- my $native = &is_domain_mysql_remote($d) ?
- "with mysql_native_password" : "";
- # return ("insert into user (host, user, ssl_type, ssl_cipher, x509_issuer, x509_subject) values ('$host', '$user', '', '', '', '')", "flush privileges", "alter user '$user'\@'$host' identified $native by '".&mysql_escape($plainpass)."'");
- use Digest::SHA1 qw(sha1 sha1_hex);
- return ("INSERT INTO global_priv (Host, User, Priv) VALUES ('$host', '$user', '{\"access\":".time().",\"plugin\":\"mysql_native_password\",\"authentication_string\":\""."*".uc sha1_hex(sha1($plainpass))."\",\"password_last_changed\":".time()."}')");
- }
- elsif (&compare_versions($ver, "5.7.6") >= 0) {
- # return ("insert into user (host, user, ssl_type, ssl_cipher, x509_issuer, x509_subject, plugin, authentication_string) values ('$host', '$user', '', '', '', '', 'mysql_native_password', $encpass)");
- use Digest::SHA1 qw(sha1 sha1_hex);
- return ("INSERT INTO global_priv (Host, User, Priv) VALUES ('$host', '$user', '{\"access\":".time().",\"plugin\":\"mysql_native_password\",\"authentication_string\":\""."*".uc sha1_hex(sha1($plainpass))."\",\"password_last_changed\":".time()."}')");
- }
- elsif (&compare_versions($ver, 5) >= 0) {
- return ("insert into user (host, user, ssl_type, ssl_cipher, x509_issuer, x509_subject) values ('$host', '$user', '', '', '', '')", "flush privileges", "set password for '$user'\@'$host' = $encpass");
- }
- else {
- return ("insert into user (host, user, password) values ('$host', '$user', $encpass)");
- }
- }
- # execute_password_change_sql(&domain, user, password-sql, [force-user-table],
- # [no-flush], [plaintext-pass])
- # Update a MySQL user's password for all hosts
- sub execute_password_change_sql
- {
- my ($d, $user, $encpass, $forceuser, $noflush, $plainpass) = @_;
- if (!$encpass && $plainpass) {
- # Hash password for insertion
- my $qpass = &mysql_escape($plainpass);
- $encpass = "$password_func('$qpass')";
- }
- my $rv = &execute_dom_sql($d, $mysql::master_db,
- "select host from user where user = ?", $user);
- my $flush = 0;
- foreach my $host (&unique(map { $_->[0] } @{$rv->{'data'}})) {
- my $sql;
- my ($ver, $variant) = &get_dom_remote_mysql_version($d);
- if (($variant eq "mysql" && &compare_versions($ver, "8") >= 0 ||
- $variant eq "mariadb" && &compare_versions($ver, "10.2") >= 0) &&
- $plainpass) {
- # Use the plaintext password wherever possible
- # $sql = "set password for '$user'\@'$host' = '".
- # &mysql_escape($plainpass)."'";
- my $mpass=uc sha1_hex(sha1($plainpass));
- $sql = "update global_priv set Priv = '{\"access\":".time().",\"plugin\":\"mysql_native_password\",\"authentication_string\":\"*$mpass\",\"password_last_changed\":".time()."}' where user = '$user'";
- }
- elsif (&compare_versions($ver, "5.7.6") >= 0) {
- $sql = "update user set authentication_string = $encpass ".
Add Comment
Please, Sign In to add comment