Мастер, учёт DEPO: скрипт таблиц не выходит за карточку; на «Подключении» — как создать логин bj (права, скрипт MS SQL/PostgreSQL с базой и логином из полей)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package lkgateway
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestDepoLoginScript(t *testing.T) {
|
||||
ms := depoLoginScript(false, "CLIENT_DEPO", "bj_svc")
|
||||
for _, w := range []string{"CREATE LOGIN [bj_svc]", "USE [CLIENT_DEPO]", "CREATE USER [bj_svc] FOR LOGIN [bj_svc]", "db_datareader"} {
|
||||
if !strings.Contains(ms, w) {
|
||||
t.Fatalf("MS SQL: нет %q", w)
|
||||
}
|
||||
}
|
||||
pg := depoLoginScript(true, "depo", "bj_svc")
|
||||
for _, w := range []string{`CREATE ROLE "bj_svc" LOGIN`, `GRANT CONNECT ON DATABASE "depo"`, `GRANT SELECT ON ALL TABLES`} {
|
||||
if !strings.Contains(pg, w) {
|
||||
t.Fatalf("PostgreSQL: нет %q", w)
|
||||
}
|
||||
}
|
||||
if s := depoLoginScript(false, "bad;db", "x'; DROP"); !strings.Contains(s, "[BJ_DEPO_DATA]") || !strings.Contains(s, "[bj_user]") {
|
||||
t.Fatal("недопустимые имена — подставляются значения по умолчанию")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user