Files
Bridge-and-Join-s/internal/lkgateway/depo_execas_test.go
T
fontvielle 188691557a DEPO: FTV_M2M_JOB ставится WITH EXECUTE AS SYSDBA — обработка от SYSDBA и при вызове из bj, и джобой SQL Agent
22.10.2026, первый боевой входящий перевод на 9: в режиме «процедуру вызывает bj» процедуры работали правами
bj_user, Fancy отказал «Создание документа запрещено для данного пользователя» (FU_HAVE_RIGHT пропускает только
SYSDBA%), поручение в DEPO не создалось. На тесте была джоба SQL Agent (dbo → execute as SYSDBA).
Новый отпечаток процедур — плашка «Применить скрипты» на установках.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-22 17:42:30 +03:00

26 lines
1.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package lkgateway
import (
"strings"
"testing"
)
// FTV_M2M_JOB ставится с WITH EXECUTE AS 'SYSDBA' — обработка от SYSDBA и при вызове из bj; остальные — как есть.
func TestDepoProcInstallBodyExecAs(t *testing.T) {
var f FancyMSSQLSettings
job := depoProcInstallBody(f, "FTV_M2M_JOB")
if !strings.Contains(job, "with execute as 'SYSDBA'\nas\n") {
t.Fatalf("JOB без EXECUTE AS:\n%s", job[:200])
}
if strings.Index(job, "with execute as") > strings.Index(job, "set nocount on") {
t.Fatal("EXECUTE AS не перед телом процедуры")
}
if depoProcInstallBody(f, "FTV_M2M_PROCESS_CREATE") != depoProcEffective(f, "FTV_M2M_PROCESS_CREATE") {
t.Fatal("CREATE изменён")
}
f.DepoProcOverrides = map[string]string{"FTV_M2M_JOB": "CREATE OR ALTER procedure dbo.FTV_M2M_JOB\nWITH EXECUTE AS OWNER\nas\nselect 1"}
if got := depoProcInstallBody(f, "FTV_M2M_JOB"); strings.Count(strings.ToLower(got), "execute as") != 1 {
t.Fatalf("второй EXECUTE AS к правке под клиента: %s", got)
}
}