Files
trufflehog/pkg/analyzer/analyzers/mysql/permissions.go
Abdul BasitandAbdul Basit b0318a9edb [analyze] Add Analyzer for MySQL (#3193)
* implement analyzer interface for mysql

* add integration test for mysql analyzer

* linked detectors with analyzers for jdbc and mysql
validation for connection string in analyzer

* refactored secretInfoToAnalyzerResult func

* generated permissions for mysql analyzer

* [chore]
- optimization in execution flow
- use test-container library for analyze test.

* added host in secret info struct
simplified the mysql test due to huge structure

---------

Co-authored-by: Abdul Basit <[email protected]>
2024-09-12 11:48:34 -07:00

452 lines
15 KiB
Go

// Code generated by go generate; DO NOT EDIT.
package mysql
import "errors"
type Permission int
const (
Invalid Permission = iota
Alter Permission = iota
AlterRoutine Permission = iota
AllowNonexistentDefiner Permission = iota
ApplicationPasswordAdmin Permission = iota
AuditAbortExempt Permission = iota
AuditAdmin Permission = iota
AuthenticationPolicyAdmin Permission = iota
BackupAdmin Permission = iota
BinlogAdmin Permission = iota
BinlogEncryptionAdmin Permission = iota
CloneAdmin Permission = iota
ConnectionAdmin Permission = iota
Create Permission = iota
CreateRole Permission = iota
CreateRoutine Permission = iota
CreateTablespace Permission = iota
CreateTemporaryTables Permission = iota
CreateUser Permission = iota
CreateView Permission = iota
Delete Permission = iota
Drop Permission = iota
DropRole Permission = iota
EncryptionKeyAdmin Permission = iota
Event Permission = iota
Execute Permission = iota
File Permission = iota
FirewallAdmin Permission = iota
FirewallExempt Permission = iota
FirewallUser Permission = iota
FlushOptimizerCosts Permission = iota
FlushStatus Permission = iota
FlushTables Permission = iota
FlushUserResources Permission = iota
GrantOption Permission = iota
GroupReplicationAdmin Permission = iota
GroupReplicationStream Permission = iota
Index Permission = iota
InnodbRedoLogArchive Permission = iota
InnodbRedoLogEnable Permission = iota
Insert Permission = iota
LockingTables Permission = iota
MaskingDictionariesAdmin Permission = iota
NdbStoredUser Permission = iota
PasswordlessUserAdmin Permission = iota
PersistRoVariablesAdmin Permission = iota
Process Permission = iota
Proxy Permission = iota
References Permission = iota
Reload Permission = iota
ReplicationApplier Permission = iota
ReplicationClient Permission = iota
ReplicationSlave Permission = iota
ReplicationSlaveAdmin Permission = iota
ResourceGroupAdmin Permission = iota
ResourceGroupUser Permission = iota
RoleAdmin Permission = iota
Select Permission = iota
SensitiveVariablesObserver Permission = iota
ServiceConnectionAdmin Permission = iota
SessionVariablesAdmin Permission = iota
SetAnyDefiner Permission = iota
SetUserId Permission = iota
ShowDatabases Permission = iota
ShowRoutine Permission = iota
ShowView Permission = iota
Shutdown Permission = iota
SkipQueryRewrite Permission = iota
Super Permission = iota
SystemUser Permission = iota
SystemVariablesAdmin Permission = iota
TableEncryptionAdmin Permission = iota
TelemetryLogAdmin Permission = iota
TpConnectionAdmin Permission = iota
TransactionGtidTag Permission = iota
Trigger Permission = iota
Update Permission = iota
Usage Permission = iota
VersionTokenAdmin Permission = iota
XaRecoverAdmin Permission = iota
)
var (
PermissionStrings = map[Permission]string{
Alter: "alter",
AlterRoutine: "alter_routine",
AllowNonexistentDefiner: "allow_nonexistent_definer",
ApplicationPasswordAdmin: "application_password_admin",
AuditAbortExempt: "audit_abort_exempt",
AuditAdmin: "audit_admin",
AuthenticationPolicyAdmin: "authentication_policy_admin",
BackupAdmin: "backup_admin",
BinlogAdmin: "binlog_admin",
BinlogEncryptionAdmin: "binlog_encryption_admin",
CloneAdmin: "clone_admin",
ConnectionAdmin: "connection_admin",
Create: "create",
CreateRole: "create_role",
CreateRoutine: "create_routine",
CreateTablespace: "create_tablespace",
CreateTemporaryTables: "create_temporary_tables",
CreateUser: "create_user",
CreateView: "create_view",
Delete: "delete",
Drop: "drop",
DropRole: "drop_role",
EncryptionKeyAdmin: "encryption_key_admin",
Event: "event",
Execute: "execute",
File: "file",
FirewallAdmin: "firewall_admin",
FirewallExempt: "firewall_exempt",
FirewallUser: "firewall_user",
FlushOptimizerCosts: "flush_optimizer_costs",
FlushStatus: "flush_status",
FlushTables: "flush_tables",
FlushUserResources: "flush_user_resources",
GrantOption: "grant_option",
GroupReplicationAdmin: "group_replication_admin",
GroupReplicationStream: "group_replication_stream",
Index: "index",
InnodbRedoLogArchive: "innodb_redo_log_archive",
InnodbRedoLogEnable: "innodb_redo_log_enable",
Insert: "insert",
LockingTables: "locking_tables",
MaskingDictionariesAdmin: "masking_dictionaries_admin",
NdbStoredUser: "ndb_stored_user",
PasswordlessUserAdmin: "passwordless_user_admin",
PersistRoVariablesAdmin: "persist_ro_variables_admin",
Process: "process",
Proxy: "proxy",
References: "references",
Reload: "reload",
ReplicationApplier: "replication_applier",
ReplicationClient: "replication_client",
ReplicationSlave: "replication_slave",
ReplicationSlaveAdmin: "replication_slave_admin",
ResourceGroupAdmin: "resource_group_admin",
ResourceGroupUser: "resource_group_user",
RoleAdmin: "role_admin",
Select: "select",
SensitiveVariablesObserver: "sensitive_variables_observer",
ServiceConnectionAdmin: "service_connection_admin",
SessionVariablesAdmin: "session_variables_admin",
SetAnyDefiner: "set_any_definer",
SetUserId: "set_user_id",
ShowDatabases: "show_databases",
ShowRoutine: "show_routine",
ShowView: "show_view",
Shutdown: "shutdown",
SkipQueryRewrite: "skip_query_rewrite",
Super: "super",
SystemUser: "system_user",
SystemVariablesAdmin: "system_variables_admin",
TableEncryptionAdmin: "table_encryption_admin",
TelemetryLogAdmin: "telemetry_log_admin",
TpConnectionAdmin: "tp_connection_admin",
TransactionGtidTag: "transaction_gtid_tag",
Trigger: "trigger",
Update: "update",
Usage: "usage",
VersionTokenAdmin: "version_token_admin",
XaRecoverAdmin: "xa_recover_admin",
}
StringToPermission = map[string]Permission{
"alter": Alter,
"alter_routine": AlterRoutine,
"allow_nonexistent_definer": AllowNonexistentDefiner,
"application_password_admin": ApplicationPasswordAdmin,
"audit_abort_exempt": AuditAbortExempt,
"audit_admin": AuditAdmin,
"authentication_policy_admin": AuthenticationPolicyAdmin,
"backup_admin": BackupAdmin,
"binlog_admin": BinlogAdmin,
"binlog_encryption_admin": BinlogEncryptionAdmin,
"clone_admin": CloneAdmin,
"connection_admin": ConnectionAdmin,
"create": Create,
"create_role": CreateRole,
"create_routine": CreateRoutine,
"create_tablespace": CreateTablespace,
"create_temporary_tables": CreateTemporaryTables,
"create_user": CreateUser,
"create_view": CreateView,
"delete": Delete,
"drop": Drop,
"drop_role": DropRole,
"encryption_key_admin": EncryptionKeyAdmin,
"event": Event,
"execute": Execute,
"file": File,
"firewall_admin": FirewallAdmin,
"firewall_exempt": FirewallExempt,
"firewall_user": FirewallUser,
"flush_optimizer_costs": FlushOptimizerCosts,
"flush_status": FlushStatus,
"flush_tables": FlushTables,
"flush_user_resources": FlushUserResources,
"grant_option": GrantOption,
"group_replication_admin": GroupReplicationAdmin,
"group_replication_stream": GroupReplicationStream,
"index": Index,
"innodb_redo_log_archive": InnodbRedoLogArchive,
"innodb_redo_log_enable": InnodbRedoLogEnable,
"insert": Insert,
"locking_tables": LockingTables,
"masking_dictionaries_admin": MaskingDictionariesAdmin,
"ndb_stored_user": NdbStoredUser,
"passwordless_user_admin": PasswordlessUserAdmin,
"persist_ro_variables_admin": PersistRoVariablesAdmin,
"process": Process,
"proxy": Proxy,
"references": References,
"reload": Reload,
"replication_applier": ReplicationApplier,
"replication_client": ReplicationClient,
"replication_slave": ReplicationSlave,
"replication_slave_admin": ReplicationSlaveAdmin,
"resource_group_admin": ResourceGroupAdmin,
"resource_group_user": ResourceGroupUser,
"role_admin": RoleAdmin,
"select": Select,
"sensitive_variables_observer": SensitiveVariablesObserver,
"service_connection_admin": ServiceConnectionAdmin,
"session_variables_admin": SessionVariablesAdmin,
"set_any_definer": SetAnyDefiner,
"set_user_id": SetUserId,
"show_databases": ShowDatabases,
"show_routine": ShowRoutine,
"show_view": ShowView,
"shutdown": Shutdown,
"skip_query_rewrite": SkipQueryRewrite,
"super": Super,
"system_user": SystemUser,
"system_variables_admin": SystemVariablesAdmin,
"table_encryption_admin": TableEncryptionAdmin,
"telemetry_log_admin": TelemetryLogAdmin,
"tp_connection_admin": TpConnectionAdmin,
"transaction_gtid_tag": TransactionGtidTag,
"trigger": Trigger,
"update": Update,
"usage": Usage,
"version_token_admin": VersionTokenAdmin,
"xa_recover_admin": XaRecoverAdmin,
}
PermissionIDs = map[Permission]int{
Alter: 1,
AlterRoutine: 2,
AllowNonexistentDefiner: 3,
ApplicationPasswordAdmin: 4,
AuditAbortExempt: 5,
AuditAdmin: 6,
AuthenticationPolicyAdmin: 7,
BackupAdmin: 8,
BinlogAdmin: 9,
BinlogEncryptionAdmin: 10,
CloneAdmin: 11,
ConnectionAdmin: 12,
Create: 13,
CreateRole: 14,
CreateRoutine: 15,
CreateTablespace: 16,
CreateTemporaryTables: 17,
CreateUser: 18,
CreateView: 19,
Delete: 20,
Drop: 21,
DropRole: 22,
EncryptionKeyAdmin: 23,
Event: 24,
Execute: 25,
File: 26,
FirewallAdmin: 27,
FirewallExempt: 28,
FirewallUser: 29,
FlushOptimizerCosts: 30,
FlushStatus: 31,
FlushTables: 32,
FlushUserResources: 33,
GrantOption: 34,
GroupReplicationAdmin: 35,
GroupReplicationStream: 36,
Index: 37,
InnodbRedoLogArchive: 38,
InnodbRedoLogEnable: 39,
Insert: 40,
LockingTables: 41,
MaskingDictionariesAdmin: 42,
NdbStoredUser: 43,
PasswordlessUserAdmin: 44,
PersistRoVariablesAdmin: 45,
Process: 46,
Proxy: 47,
References: 48,
Reload: 49,
ReplicationApplier: 50,
ReplicationClient: 51,
ReplicationSlave: 52,
ReplicationSlaveAdmin: 53,
ResourceGroupAdmin: 54,
ResourceGroupUser: 55,
RoleAdmin: 56,
Select: 57,
SensitiveVariablesObserver: 58,
ServiceConnectionAdmin: 59,
SessionVariablesAdmin: 60,
SetAnyDefiner: 61,
SetUserId: 62,
ShowDatabases: 63,
ShowRoutine: 64,
ShowView: 65,
Shutdown: 66,
SkipQueryRewrite: 67,
Super: 68,
SystemUser: 69,
SystemVariablesAdmin: 70,
TableEncryptionAdmin: 71,
TelemetryLogAdmin: 72,
TpConnectionAdmin: 73,
TransactionGtidTag: 74,
Trigger: 75,
Update: 76,
Usage: 77,
VersionTokenAdmin: 78,
XaRecoverAdmin: 79,
}
IdToPermission = map[int]Permission{
1: Alter,
2: AlterRoutine,
3: AllowNonexistentDefiner,
4: ApplicationPasswordAdmin,
5: AuditAbortExempt,
6: AuditAdmin,
7: AuthenticationPolicyAdmin,
8: BackupAdmin,
9: BinlogAdmin,
10: BinlogEncryptionAdmin,
11: CloneAdmin,
12: ConnectionAdmin,
13: Create,
14: CreateRole,
15: CreateRoutine,
16: CreateTablespace,
17: CreateTemporaryTables,
18: CreateUser,
19: CreateView,
20: Delete,
21: Drop,
22: DropRole,
23: EncryptionKeyAdmin,
24: Event,
25: Execute,
26: File,
27: FirewallAdmin,
28: FirewallExempt,
29: FirewallUser,
30: FlushOptimizerCosts,
31: FlushStatus,
32: FlushTables,
33: FlushUserResources,
34: GrantOption,
35: GroupReplicationAdmin,
36: GroupReplicationStream,
37: Index,
38: InnodbRedoLogArchive,
39: InnodbRedoLogEnable,
40: Insert,
41: LockingTables,
42: MaskingDictionariesAdmin,
43: NdbStoredUser,
44: PasswordlessUserAdmin,
45: PersistRoVariablesAdmin,
46: Process,
47: Proxy,
48: References,
49: Reload,
50: ReplicationApplier,
51: ReplicationClient,
52: ReplicationSlave,
53: ReplicationSlaveAdmin,
54: ResourceGroupAdmin,
55: ResourceGroupUser,
56: RoleAdmin,
57: Select,
58: SensitiveVariablesObserver,
59: ServiceConnectionAdmin,
60: SessionVariablesAdmin,
61: SetAnyDefiner,
62: SetUserId,
63: ShowDatabases,
64: ShowRoutine,
65: ShowView,
66: Shutdown,
67: SkipQueryRewrite,
68: Super,
69: SystemUser,
70: SystemVariablesAdmin,
71: TableEncryptionAdmin,
72: TelemetryLogAdmin,
73: TpConnectionAdmin,
74: TransactionGtidTag,
75: Trigger,
76: Update,
77: Usage,
78: VersionTokenAdmin,
79: XaRecoverAdmin,
}
)
// ToString converts a Permission enum to its string representation
func (p Permission) ToString() (string, error) {
if str, ok := PermissionStrings[p]; ok {
return str, nil
}
return "", errors.New("invalid permission")
}
// ToID converts a Permission enum to its ID
func (p Permission) ToID() (int, error) {
if id, ok := PermissionIDs[p]; ok {
return id, nil
}
return 0, errors.New("invalid permission")
}
// PermissionFromString converts a string representation to its Permission enum
func PermissionFromString(s string) (Permission, error) {
if p, ok := StringToPermission[s]; ok {
return p, nil
}
return 0, errors.New("invalid permission string")
}
// PermissionFromID converts an ID to its Permission enum
func PermissionFromID(id int) (Permission, error) {
if p, ok := IdToPermission[id]; ok {
return p, nil
}
return 0, errors.New("invalid permission ID")
}