mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
Revert previous commit and handle VIEWs exactly as we handle tables in user management, except for the icon in front of the privilege, which we detect so the user can distinct between tables and views.
This commit is contained in:
@ -160,7 +160,7 @@ type
|
|||||||
FModified, FAdded: Boolean;
|
FModified, FAdded: Boolean;
|
||||||
CloneGrants: TStringList;
|
CloneGrants: TStringList;
|
||||||
FPrivObjects: TPrivObjList;
|
FPrivObjects: TPrivObjList;
|
||||||
PrivsGlobal, PrivsDb, PrivsTable, PrivsView, PrivsRoutine, PrivsColumn: TStringList;
|
PrivsGlobal, PrivsDb, PrivsTable, PrivsRoutine, PrivsColumn: TStringList;
|
||||||
FConnection: TDBConnection;
|
FConnection: TDBConnection;
|
||||||
procedure SetModified(Value: Boolean);
|
procedure SetModified(Value: Boolean);
|
||||||
property Modified: Boolean read FModified write SetModified;
|
property Modified: Boolean read FModified write SetModified;
|
||||||
@ -259,7 +259,6 @@ begin
|
|||||||
PrivsGlobal := InitPrivList('FILE,PROCESS,RELOAD,SHUTDOWN');
|
PrivsGlobal := InitPrivList('FILE,PROCESS,RELOAD,SHUTDOWN');
|
||||||
PrivsDb := InitPrivList('');
|
PrivsDb := InitPrivList('');
|
||||||
PrivsTable := InitPrivList('ALTER,CREATE,DELETE,DROP,GRANT,INDEX');
|
PrivsTable := InitPrivList('ALTER,CREATE,DELETE,DROP,GRANT,INDEX');
|
||||||
PrivsView := InitPrivList('');
|
|
||||||
PrivsRoutine := InitPrivList('GRANT');
|
PrivsRoutine := InitPrivList('GRANT');
|
||||||
PrivsColumn := InitPrivList('INSERT,SELECT,UPDATE,REFERENCES');
|
PrivsColumn := InitPrivList('INSERT,SELECT,UPDATE,REFERENCES');
|
||||||
|
|
||||||
@ -273,9 +272,8 @@ begin
|
|||||||
PrivsRoutine.Add('EXECUTE');
|
PrivsRoutine.Add('EXECUTE');
|
||||||
end;
|
end;
|
||||||
if Version >= 50001 then begin
|
if Version >= 50001 then begin
|
||||||
PrivsView.Add('DROP');
|
PrivsTable.Add('CREATE VIEW');
|
||||||
PrivsView.Add('CREATE VIEW');
|
PrivsTable.Add('SHOW VIEW');
|
||||||
PrivsView.Add('SHOW VIEW');
|
|
||||||
end;
|
end;
|
||||||
if Version >= 50003 then begin
|
if Version >= 50003 then begin
|
||||||
PrivsGlobal.Add('CREATE USER');
|
PrivsGlobal.Add('CREATE USER');
|
||||||
@ -307,8 +305,6 @@ begin
|
|||||||
PrivsDb.CustomSort(ComparePrivs);
|
PrivsDb.CustomSort(ComparePrivs);
|
||||||
PrivsTable.Sorted := False;
|
PrivsTable.Sorted := False;
|
||||||
PrivsTable.CustomSort(ComparePrivs);
|
PrivsTable.CustomSort(ComparePrivs);
|
||||||
PrivsView.Sorted := False;
|
|
||||||
PrivsView.CustomSort(ComparePrivs);
|
|
||||||
PrivsRoutine.Sorted := False;
|
PrivsRoutine.Sorted := False;
|
||||||
PrivsRoutine.CustomSort(ComparePrivs);
|
PrivsRoutine.CustomSort(ComparePrivs);
|
||||||
PrivsColumn.Sorted := False;
|
PrivsColumn.Sorted := False;
|
||||||
@ -371,7 +367,6 @@ begin
|
|||||||
FreeAndNil(PrivsGlobal);
|
FreeAndNil(PrivsGlobal);
|
||||||
FreeAndNil(PrivsDb);
|
FreeAndNil(PrivsDb);
|
||||||
FreeAndNil(PrivsTable);
|
FreeAndNil(PrivsTable);
|
||||||
FreeAndNil(PrivsView);
|
|
||||||
FreeAndNil(PrivsRoutine);
|
FreeAndNil(PrivsRoutine);
|
||||||
FreeAndNil(PrivsColumn);
|
FreeAndNil(PrivsColumn);
|
||||||
Action := caFree;
|
Action := caFree;
|
||||||
@ -470,7 +465,6 @@ var
|
|||||||
rxTemp, rxGrant: TRegExpr;
|
rxTemp, rxGrant: TRegExpr;
|
||||||
i, j: Integer;
|
i, j: Integer;
|
||||||
UserSelected: Boolean;
|
UserSelected: Boolean;
|
||||||
Objects: TDBObjectList;
|
|
||||||
Obj: TDBObject;
|
Obj: TDBObject;
|
||||||
begin
|
begin
|
||||||
// Parse and display privileges of focused user
|
// Parse and display privileges of focused user
|
||||||
@ -503,7 +497,6 @@ begin
|
|||||||
AllPNames.AddStrings(PrivsGlobal);
|
AllPNames.AddStrings(PrivsGlobal);
|
||||||
AllPNames.AddStrings(PrivsDb);
|
AllPNames.AddStrings(PrivsDb);
|
||||||
AllPNames.AddStrings(PrivsTable);
|
AllPNames.AddStrings(PrivsTable);
|
||||||
AllPNames.AddStrings(PrivsView);
|
|
||||||
AllPNames.AddStrings(PrivsRoutine);
|
AllPNames.AddStrings(PrivsRoutine);
|
||||||
AllPNames.AddStrings(PrivsColumn);
|
AllPNames.AddStrings(PrivsColumn);
|
||||||
|
|
||||||
@ -574,15 +567,12 @@ begin
|
|||||||
P.DBObj.NodeType := lntProcedure;
|
P.DBObj.NodeType := lntProcedure;
|
||||||
P.AllPrivileges := PrivsRoutine;
|
P.AllPrivileges := PrivsRoutine;
|
||||||
end else begin
|
end else begin
|
||||||
Objects := P.DBObj.Connection.GetDBObjects(P.DBObj.Database);
|
|
||||||
Obj := P.DBObj.Connection.FindObject(P.DBObj.Database, P.DBObj.Name);
|
Obj := P.DBObj.Connection.FindObject(P.DBObj.Database, P.DBObj.Name);
|
||||||
if (Obj <> nil) and (Obj.NodeType = lntView) then begin
|
if (Obj <> nil) and (Obj.NodeType = lntView) then
|
||||||
P.DBObj.NodeType := lntView;
|
P.DBObj.NodeType := lntView
|
||||||
P.AllPrivileges := PrivsView;
|
else
|
||||||
end else begin
|
|
||||||
P.DBObj.NodeType := lntTable;
|
P.DBObj.NodeType := lntTable;
|
||||||
P.AllPrivileges := PrivsTable;
|
P.AllPrivileges := PrivsTable;
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1088,8 +1078,7 @@ begin
|
|||||||
case Priv.DBObj.NodeType of
|
case Priv.DBObj.NodeType of
|
||||||
lntNone: Priv.AllPrivileges := PrivsGlobal;
|
lntNone: Priv.AllPrivileges := PrivsGlobal;
|
||||||
lntDb: Priv.AllPrivileges := PrivsDb;
|
lntDb: Priv.AllPrivileges := PrivsDb;
|
||||||
lntTable: Priv.AllPrivileges := PrivsTable;
|
lntTable, lntView: Priv.AllPrivileges := PrivsTable;
|
||||||
lntView: Priv.AllPrivileges := PrivsView;
|
|
||||||
lntFunction, lntProcedure: Priv.AllPrivileges := PrivsRoutine;
|
lntFunction, lntProcedure: Priv.AllPrivileges := PrivsRoutine;
|
||||||
lntColumn: Priv.AllPrivileges := PrivsColumn;
|
lntColumn: Priv.AllPrivileges := PrivsColumn;
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user