【问题标题】:Connect SBCL on Windows to SQL Server using Integrated Authentication使用集成身份验证将 Windows 上的 SBCL 连接到 SQL Server
【发布时间】:2023-03-27 19:02:01
【问题描述】:

使用集成身份验证让在 Windows 上运行的 SBCL 应用程序连接到 SQL Server 实例阻力最小的路径是什么?

我找到了有关使用 ODBC 连接从 CL-SQL 连接到 SQL Server 的帖子,但据我所知,如果不先手动设置 DSN,就无法做到这一点。

有没有一种简单的方法可以做到这一点?

【问题讨论】:

    标签: sql-server lisp odbc common-lisp sbcl


    【解决方案1】:

    有一个cl-mssql 库使用 FreeTDS 与 MSSQL 服务器进行通信。根据http://www.freetds.org/userguide/domains.htm,如果您指定像“域\用户名”这样的登录名,FreeTDS 将使用集成身份验证。所以它可能适用于 cl-mssql(虽然我没有使用过)。

    【讨论】:

    • 我在 Windows 上设置它时遇到了一些 dll 问题,但我想重新审视这个解决方案。同时,我已经成功地使用了plain-odbc,分别详述以供评论和将来参考。
    【解决方案2】:

    对此(SBCL、Windows、无DSN)阻力最小的路径似乎是plain-odbc

    (asdf:load-system :plain-odbc)
    (use-package :plain-odbc)
    (setf conn (connect-generic :driver "{SQL Server}"
                                :database "dbname"
                                :server "servername"
                                :trusted_connection "yes"))
    (exec-query conn "select * from some_table")
    

    不要使用 (connect-sql-server ...),因为它需要默认的 DSN,*default-sql-server-dsn*。

    也可能需要指定更好的驱动程序。

    【讨论】:

    • 截至 2015 年 4 月,plain-odbc 的项目页面已关闭,到目前为止,我在谷歌上搜索了一点。
    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多