如何在SQL Server(ODBC)中使用mod_authn_dbd

时间:2019-06-27 18:40:37

标签: sql-server apache authentication odbc

有许多关于将mod_authn_dbd与MySQL一起使用的教程,但是对于使用ODBC的SQL Server我找不到任何教程。我花了一段时间才弄清楚,所以我决定在这里写下来。这不是一个完整的教程,但足以使您入门并运行。

1 个答案:

答案 0 :(得分:0)

所有命令必须以root用户或使用sudo运行。

为Linux安装Microsoft ODBC驱动程序

Instructions on Microsoft site

Debian 9的示例:

apt update
apt install curl apt-transport-https

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt update
ACCEPT_EULA=Y apt-get install msodbcsql17

配置/etc/odbc.ini

示例内容:

[DBSERVER1]
Driver = ODBC Driver 17 for SQL Server
Server = 192.168.1.123

安装并启用mod_authn_dbd

apt install libaprutil1-dbd-odbc
a2enmod dbd
a2enmod authn_dbd
a2enmod authn_socache

配置Apache身份验证

将此添加到您的网站配置中的某个位置:

DBDriver odbc
DBDParams "DATASOURCE=DBSERVER1,USER=dbuser,PASSWORD=dbpass"

<Location "/test">
        AuthType Basic
        AuthName "Secured area"
        AuthBasicProvider socache dbd

        AuthnCacheProvideFor dbd
        AuthnCacheContext my-server

        Require valid-user

        AuthDBDUserPWQuery "SELECT USR_PASS FROM USERS WHERE USR_EMAIL=%s"
</Location>