首页 > 解决方案 > 带反斜杠的用户名

问题描述

我已经通过 gradle 插件尝试了 liquibase,并尝试了 liquibase 独立在数据库上运行更新,用户名中有反斜杠。

我总是收到“登录失败”错误。如果我尝试与另一个没有反斜杠的用户连接到同一个数据库,它可以工作,但我真的需要使用带有反斜杠的用户进行连接。

您可以在此处查看更多详细信息:https ://github.com/liquibase/liquibase-gradle-plugin/issues/62

关于如何尝试逃避反斜杠的任何想法?我尝试使用引号和双反斜杠,甚至绝望地尝试了多个反斜杠,但无济于事。

标签: escapingliquibasebackslash

解决方案


问题与 Liquibase 无关,而是尝试使用域凭据登录 MSSql 数据库。

对于受此问题影响的任何未来用户,我更改了连接字符串:

liquibase {
    activities {
        main {
            changeLogFile "$config.db.changeLogFile"
            url 'jdbc:jtds:sqlserver://servername:1433;databaseName=dbName;domain=org;useNTLMv2=true;'
            username "username"
            password 'password'
        }
    }
}

所以域不再在用户名中声明,而是在url中。此外,对 jdbc:jtds:sqlserver 的更改意味着 Liquibase 正在使用 jtds 驱动程序连接数据库,这似乎得到了很好的支持。

我还尝试使用 Kerberos 集成安全身份验证,但最后我使用了 NTLM 身份验证,如上所述。无论如何,如果您对此感兴趣,请去看看。

我还留下了一些对我有帮助的有趣文章: https ://kontext.tech/docs/DotNetEssential/p/jdbc-integrated-security-ntlm-and-kerberos-authentication-for-sql-server https://blogs.msdn .microsoft.com/psssql/2015/01/09/jdbc-this-driver-is-not-configured-for-integrated-authentication/


推荐阅读