Skip to content

Commit 4194459

Browse files
authoredMay 2, 2022
feat: support more sql database & user names (#7)
1 parent 1ed43f3 commit 4194459

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed
 

‎adapters/mssql_adapter.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (adapter mssqlAdapter) CreateDatabaseUser(ctx context.Context, database str
6565
}
6666

6767
func (adapter mssqlAdapter) DeleteDatabaseUser(ctx context.Context, database string, username string) error {
68-
query := fmt.Sprintf("USE [%s]; DROP USER %s;", database, username)
68+
query := fmt.Sprintf("USE [%s]; DROP USER [%s];", database, username)
6969
_, err := adapter.db.ExecContext(ctx, query)
7070
return err
7171
}

‎adapters/mysql_adapter.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ func (adapter mysqlAdapter) HasDatabase(ctx context.Context, database string) (b
2121
}
2222

2323
func (adapter mysqlAdapter) CreateDatabase(ctx context.Context, database string) error {
24-
query := fmt.Sprintf("CREATE DATABASE %s;", database)
24+
query := fmt.Sprintf("CREATE DATABASE `%s`;", database)
2525
_, err := adapter.db.ExecContext(ctx, query)
2626
return err
2727
}
2828

2929
func (adapter mysqlAdapter) DeleteDatabase(ctx context.Context, database string) error {
30-
query := fmt.Sprintf("DROP DATABASE %s;", database)
30+
query := fmt.Sprintf("DROP DATABASE `%s`;", database)
3131
_, err := adapter.db.ExecContext(ctx, query)
3232
return err
3333
}
@@ -42,13 +42,13 @@ func (adapter mysqlAdapter) HasDatabaseUserWithAccess(ctx context.Context, datab
4242
func (adapter mysqlAdapter) CreateDatabaseUser(ctx context.Context, database string, username string, password string) error {
4343
// make password sql safe
4444
quotedPassword := QuoteLiteral(password)
45-
query := fmt.Sprintf("CREATE USER '%s'@'%%' IDENTIFIED BY %s;", username, quotedPassword)
45+
query := fmt.Sprintf("CREATE USER `%s`@'%%' IDENTIFIED BY %s;", username, quotedPassword)
4646
_, err := adapter.db.ExecContext(ctx, query)
4747
if err != nil {
4848
return err
4949
}
5050

51-
query = fmt.Sprintf("GRANT ALL PRIVILEGES ON %s.* TO '%s'@'%%';", database, username)
51+
query = fmt.Sprintf("GRANT ALL PRIVILEGES ON `%s`.* TO `%s`@'%%';", database, username)
5252
_, err = adapter.db.ExecContext(ctx, query)
5353
if err != nil {
5454
return err
@@ -59,7 +59,7 @@ func (adapter mysqlAdapter) CreateDatabaseUser(ctx context.Context, database str
5959
}
6060

6161
func (adapter mysqlAdapter) DeleteDatabaseUser(ctx context.Context, database string, username string) error {
62-
query := fmt.Sprintf("DROP USER %s;", username)
62+
query := fmt.Sprintf("DROP USER '%s';", username)
6363
_, err := adapter.db.ExecContext(ctx, query)
6464
return err
6565
}

‎adapters/postgres_adapter.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ func (adapter postgresAdapter) HasDatabase(ctx context.Context, database string)
2222
}
2323

2424
func (adapter postgresAdapter) CreateDatabase(ctx context.Context, database string) error {
25-
query := fmt.Sprintf("CREATE DATABASE %s", database)
25+
query := fmt.Sprintf("CREATE DATABASE \"%s\";", database)
2626
_, err := adapter.db.Exec(ctx, query)
2727
return err
2828
}
2929

3030
func (adapter postgresAdapter) DeleteDatabase(ctx context.Context, database string) error {
31-
query := fmt.Sprintf("DROP DATABASE %s", database)
31+
query := fmt.Sprintf("DROP DATABASE \"%s\";", database)
3232
_, err := adapter.db.Exec(ctx, query)
3333
return err
3434
}
@@ -46,13 +46,13 @@ func (adapter postgresAdapter) HasDatabaseUserWithAccess(ctx context.Context, da
4646
func (adapter postgresAdapter) CreateDatabaseUser(ctx context.Context, database string, username string, password string) error {
4747
// make password sql safe
4848
quotedPassword := QuoteLiteral(password)
49-
query := fmt.Sprintf("CREATE USER %s WITH PASSWORD %s", username, quotedPassword)
49+
query := fmt.Sprintf("CREATE USER \"%s\" WITH PASSWORD %s", username, quotedPassword)
5050
_, err := adapter.db.Exec(ctx, query)
5151
if err != nil {
5252
return err
5353
}
5454

55-
query = fmt.Sprintf("GRANT ALL PRIVILEGES ON DATABASE %s TO %s;", database, username)
55+
query = fmt.Sprintf("GRANT ALL PRIVILEGES ON DATABASE \"%s\" TO \"%s\";", database, username)
5656
_, err = adapter.db.Exec(ctx, query)
5757

5858
return err
@@ -72,19 +72,19 @@ func (adapter postgresAdapter) DeleteDatabaseUser(ctx context.Context, database
7272
}
7373
defer conn.Close(ctx)
7474

75-
query := fmt.Sprintf("DROP OWNED BY %s;", username)
75+
query := fmt.Sprintf("DROP OWNED BY \"%s\";", username)
7676
_, err = conn.Exec(ctx, query)
7777
if err != nil {
7878
return err
7979
}
8080

81-
query = fmt.Sprintf("REVOKE ALL PRIVILEGES ON DATABASE %s FROM %s; REVOKE ALL ON SCHEMA public FROM %s;", database, username, username)
81+
query = fmt.Sprintf("REVOKE ALL PRIVILEGES ON DATABASE \"%s\" FROM \"%s\"; REVOKE ALL ON SCHEMA public FROM \"%s\";", database, username, username)
8282
_, err = adapter.db.Exec(ctx, query)
8383
if err != nil {
8484
return err
8585
}
8686

87-
query = fmt.Sprintf("DROP USER %s;", username)
87+
query = fmt.Sprintf("DROP USER \"%s\";", username)
8888
_, err = adapter.db.Exec(ctx, query)
8989
return err
9090
}

‎adapters/utils_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ type ClientConnectTest func(ctx context.Context, databaseName string, databaseUs
1212
func testHelper(t *testing.T, ctx context.Context, adapter adapters.DatabaseAdapter, clientConnectTest ClientConnectTest) {
1313
// given
1414
var err error
15-
databaseName := "guestbook"
16-
databaseUsername := "guestbook_admin"
17-
databasePassword := "top-secret-123"
15+
databaseName := "guestbook-admin_123"
16+
databaseUsername := "guestbook-admin_123"
17+
databasePassword := "top_secret-123!"
1818

1919
t.Cleanup(func() {
2020
if err = adapter.DeleteDatabaseUser(ctx, databaseName, databaseUsername); err != nil {

0 commit comments

Comments
 (0)
Please sign in to comment.