mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
Issue #1302: overtake renames and additions to user privileges in MariaDB 10.5.2
This commit is contained in:
@ -216,8 +216,11 @@ begin
|
|||||||
FixVT(treePrivs);
|
FixVT(treePrivs);
|
||||||
Mainform.RestoreListSetup(listUsers);
|
Mainform.RestoreListSetup(listUsers);
|
||||||
PrivsRead := Explode(',', 'SELECT,SHOW VIEW,SHOW DATABASES,PROCESS,EXECUTE');
|
PrivsRead := Explode(',', 'SELECT,SHOW VIEW,SHOW DATABASES,PROCESS,EXECUTE');
|
||||||
PrivsWrite := Explode(',', 'ALTER,CREATE,DROP,DELETE,UPDATE,INSERT,ALTER ROUTINE,CREATE ROUTINE,CREATE TEMPORARY TABLES,CREATE VIEW,INDEX,TRIGGER,EVENT,REFERENCES,CREATE TABLESPACE');
|
PrivsWrite := Explode(',', 'ALTER,CREATE,DROP,DELETE,UPDATE,INSERT,ALTER ROUTINE,CREATE ROUTINE,CREATE TEMPORARY TABLES,'+
|
||||||
PrivsAdmin := Explode(',', 'RELOAD,SHUTDOWN,REPLICATION CLIENT,REPLICATION SLAVE,SUPER,LOCK TABLES,GRANT,FILE,CREATE USER');
|
'CREATE VIEW,INDEX,TRIGGER,EVENT,REFERENCES,CREATE TABLESPACE');
|
||||||
|
PrivsAdmin := Explode(',', 'RELOAD,SHUTDOWN,REPLICATION CLIENT,REPLICATION SLAVE,SUPER,LOCK TABLES,GRANT,FILE,CREATE USER,'+
|
||||||
|
'BINLOG ADMIN,BINLOG REPLAY,CONNECTION ADMIN,FEDERATED ADMIN,READ_ONLY ADMIN,REPLICATION MASTER ADMIN,'+
|
||||||
|
'REPLICATION SLAVE ADMIN,SET USER');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -240,7 +243,7 @@ end;
|
|||||||
|
|
||||||
procedure TUserManagerForm.FormShow(Sender: TObject);
|
procedure TUserManagerForm.FormShow(Sender: TObject);
|
||||||
var
|
var
|
||||||
Version: Integer;
|
Version, i: Integer;
|
||||||
Users: TDBQuery;
|
Users: TDBQuery;
|
||||||
U: TUser;
|
U: TUser;
|
||||||
tmp, PasswordExpr: String;
|
tmp, PasswordExpr: String;
|
||||||
@ -250,12 +253,12 @@ var
|
|||||||
PasswordLengthMatters: Boolean;
|
PasswordLengthMatters: Boolean;
|
||||||
UserTableColumns: TStringList;
|
UserTableColumns: TStringList;
|
||||||
|
|
||||||
function InitPrivList(Values: String): TStringList;
|
function InitPrivList(Values: String): TStringList;
|
||||||
begin
|
begin
|
||||||
Result := Explode(',', Values);
|
Result := Explode(',', Values);
|
||||||
Result.Sorted := True;
|
Result.Sorted := True; // ensures dupIgnore works
|
||||||
Result.Duplicates := dupIgnore;
|
Result.Duplicates := dupIgnore;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
FConnection := Mainform.ActiveConnection;
|
FConnection := Mainform.ActiveConnection;
|
||||||
@ -303,6 +306,20 @@ begin
|
|||||||
// mysql_native_password plugin enabled users
|
// mysql_native_password plugin enabled users
|
||||||
PasswordLengthMatters := False;
|
PasswordLengthMatters := False;
|
||||||
end;
|
end;
|
||||||
|
// See https://mariadb.com/kb/en/changes-improvements-in-mariadb-105/#privileges-made-more-granular
|
||||||
|
if FConnection.Parameters.IsMariaDB and (Version > 100502) then begin
|
||||||
|
i := FPrivsGlobal.IndexOf('REPLICATION CLIENT');
|
||||||
|
if i > -1 then
|
||||||
|
FPrivsGlobal.Delete(i);
|
||||||
|
FPrivsGlobal.Add('BINLOG ADMIN'); // replaces REPLICATION CLIENT
|
||||||
|
FPrivsGlobal.Add('BINLOG REPLAY');
|
||||||
|
FPrivsGlobal.Add('CONNECTION ADMIN');
|
||||||
|
FPrivsGlobal.Add('FEDERATED ADMIN');
|
||||||
|
FPrivsGlobal.Add('READ_ONLY ADMIN');
|
||||||
|
FPrivsGlobal.Add('REPLICATION MASTER ADMIN');
|
||||||
|
FPrivsGlobal.Add('REPLICATION SLAVE ADMIN');
|
||||||
|
FPrivsGlobal.Add('SET USER');
|
||||||
|
end;
|
||||||
|
|
||||||
FPrivsTable.AddStrings(FPrivsColumn);
|
FPrivsTable.AddStrings(FPrivsColumn);
|
||||||
FPrivsDb.AddStrings(FPrivsTable);
|
FPrivsDb.AddStrings(FPrivsTable);
|
||||||
|
Reference in New Issue
Block a user