Skip to content

Commit 8ac8791

Browse files
committed
*: add super privilege check for some admin commands
1 parent 62afab3 commit 8ac8791

File tree

3 files changed

+51
-12
lines changed

3 files changed

+51
-12
lines changed

pkg/planner/core/planbuilder.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1439,30 +1439,29 @@ func (b *PlanBuilder) buildAdmin(ctx context.Context, as *ast.AdminStmt) (Plan,
14391439
p.setSchemaAndNames(buildShowSlowSchema())
14401440
ret = p
14411441
case ast.AdminReloadExprPushdownBlacklist:
1442-
return &ReloadExprPushdownBlacklist{}, nil
1442+
ret = &ReloadExprPushdownBlacklist{}
14431443
case ast.AdminReloadOptRuleBlacklist:
1444-
return &ReloadOptRuleBlacklist{}, nil
1444+
ret = &ReloadOptRuleBlacklist{}
14451445
case ast.AdminPluginEnable:
1446-
return &AdminPlugins{Action: Enable, Plugins: as.Plugins}, nil
1446+
ret = &AdminPlugins{Action: Enable, Plugins: as.Plugins}
14471447
case ast.AdminPluginDisable:
1448-
return &AdminPlugins{Action: Disable, Plugins: as.Plugins}, nil
1448+
ret = &AdminPlugins{Action: Disable, Plugins: as.Plugins}
14491449
case ast.AdminFlushBindings:
1450-
return &SQLBindPlan{SQLBindOp: OpFlushBindings}, nil
1450+
ret = &SQLBindPlan{SQLBindOp: OpFlushBindings}
14511451
case ast.AdminCaptureBindings:
1452-
return &SQLBindPlan{SQLBindOp: OpCaptureBindings}, nil
1452+
ret = &SQLBindPlan{SQLBindOp: OpCaptureBindings}
14531453
case ast.AdminEvolveBindings:
1454-
var err error
14551454
// The 'baseline evolution' only work in the test environment before the feature is GA.
14561455
if !config.CheckTableBeforeDrop {
1457-
err = errors.Errorf("Cannot enable baseline evolution feature, it is not generally available now")
1456+
return nil, errors.Errorf("Cannot enable baseline evolution feature, it is not generally available now")
14581457
}
1459-
return &SQLBindPlan{SQLBindOp: OpEvolveBindings}, err
1458+
ret = &SQLBindPlan{SQLBindOp: OpEvolveBindings}
14601459
case ast.AdminReloadBindings:
1461-
return &SQLBindPlan{SQLBindOp: OpReloadBindings}, nil
1460+
ret = &SQLBindPlan{SQLBindOp: OpReloadBindings}
14621461
case ast.AdminReloadStatistics:
1463-
return &Simple{Statement: as}, nil
1462+
ret = &Simple{Statement: as}
14641463
case ast.AdminFlushPlanCache:
1465-
return &Simple{Statement: as}, nil
1464+
ret = &Simple{Statement: as}
14661465
case ast.AdminSetBDRRole, ast.AdminUnsetBDRRole:
14671466
ret = &Simple{Statement: as}
14681467
case ast.AdminShowBDRRole:

tests/integrationtest/r/privilege/privileges.result

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,3 +617,23 @@ ADMIN SHOW SLOW RECENT 3;
617617
Error 8121 (HY000): privilege check for 'Super' fail
618618
ADMIN SHOW SLOW TOP ALL 3;
619619
Error 8121 (HY000): privilege check for 'Super' fail
620+
admin reload expr_pushdown_blacklist;
621+
Error 8121 (HY000): privilege check for 'Super' fail
622+
admin reload opt_rule_blacklist;
623+
Error 8121 (HY000): privilege check for 'Super' fail
624+
admin plugins enable audit;
625+
Error 8121 (HY000): privilege check for 'Super' fail
626+
admin plugins disable audit;
627+
Error 8121 (HY000): privilege check for 'Super' fail
628+
admin flush bindings;
629+
Error 8121 (HY000): privilege check for 'Super' fail
630+
admin capture bindings;
631+
Error 8121 (HY000): privilege check for 'Super' fail
632+
admin reload bindings;
633+
Error 8121 (HY000): privilege check for 'Super' fail
634+
admin flush session plan_cache;
635+
Error 8121 (HY000): privilege check for 'Super' fail
636+
admin flush global plan_cache;
637+
Error 8121 (HY000): privilege check for 'Super' fail
638+
admin flush instance plan_cache;
639+
Error 8121 (HY000): privilege check for 'Super' fail

tests/integrationtest/t/privilege/privileges.test

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,26 @@ ADMIN SHOW privilege__privileges.admin NEXT_ROW_ID;
841841
ADMIN SHOW SLOW RECENT 3;
842842
-- error 8121
843843
ADMIN SHOW SLOW TOP ALL 3;
844+
-- error 8121
845+
admin reload expr_pushdown_blacklist;
846+
-- error 8121
847+
admin reload opt_rule_blacklist;
848+
-- error 8121
849+
admin plugins enable audit;
850+
-- error 8121
851+
admin plugins disable audit;
852+
-- error 8121
853+
admin flush bindings;
854+
-- error 8121
855+
admin capture bindings;
856+
-- error 8121
857+
admin reload bindings;
858+
-- error 8121
859+
admin flush session plan_cache;
860+
-- error 8121
861+
admin flush global plan_cache;
862+
-- error 8121
863+
admin flush instance plan_cache;
844864

845865
disconnect without_super;
846866
connection default;

0 commit comments

Comments
 (0)