MCPcopy Create free account
hub / github.com/bytebase/bytebase / getUsersFromMySQLUser

Method getUsersFromMySQLUser

backend/plugin/db/tidb/role.go:106–136  ·  view source on GitHub ↗

getUsersFromMySQLUser reads users from mysql.user, returns the list of users with format "' '@' '".

(ctx context.Context)

Source from the content-addressed store, hash-verified

104
105// getUsersFromMySQLUser reads users from mysql.user, returns the list of users with format "'<user>'@'<host>'".
106func (d *Driver) getUsersFromMySQLUser(ctx context.Context) ([]string, error) {
107 var users []string
108 query := `
109 SELECT
110 user,
111 host
112 FROM mysql.user
113 WHERE user <> ''
114 AND user NOT LIKE 'mysql.%'
115 `
116 roleRows, err := d.db.QueryContext(ctx, query)
117 if err != nil {
118 return nil, errors.Wrapf(err, "failed to query mysql.user")
119 }
120 defer roleRows.Close()
121 for roleRows.Next() {
122 var user string
123 var host string
124 if err := roleRows.Scan(
125 &user,
126 &host,
127 ); err != nil {
128 return nil, err
129 }
130 users = append(users, fmt.Sprintf("'%s'@'%s'", user, host))
131 }
132 if err := roleRows.Err(); err != nil {
133 return nil, errors.Wrapf(err, "failed to iterate mysql.user")
134 }
135 return users, nil
136}

Callers 1

getInstanceRolesMethod · 0.95

Implementers 15

MockDriverbackend/plugin/advisor/utils_for_tests
Driverbackend/plugin/db/bigquery/bigquery.go
Driverbackend/plugin/db/mongodb/mongodb.go
Driverbackend/plugin/db/trino/trino.go
Driverbackend/plugin/db/redshift/redshift.go
Driverbackend/plugin/db/oracle/oracle.go
Driverbackend/plugin/db/dynamodb/dynamodb.go
Driverbackend/plugin/db/cosmosdb/cosmosdb.go
Driverbackend/plugin/db/spanner/spanner.go
Driverbackend/plugin/db/mssql/mssql.go
Driverbackend/plugin/db/mysql/mysql.go
Driverbackend/plugin/db/pg/pg.go

Calls 4

QueryContextMethod · 0.80
ScanMethod · 0.80
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected