带有多表的 AuthDBDUserPWQuery

带有多表的 AuthDBDUserPWQuery

我有一个针对 SVN 服务器的 MySQL 身份验证。配置文件如下所示:

<Location /svn/project>
    ...
    AuthDBDUserPWQuery "SELECT Password FROM SVNUsers WHERE Nickname = %s"
    ...
</Location>

它运行完美。但是,似乎需要从第二张表中获取用户。起初,我尝试使用 UNION(当然!)。像这样:

    AuthDBDUserPWQuery "SELECT Password FROM SVNUsers WHERE Nickname = %s UNION SELECT Password FROM Users WHERE Nickname = %s"

但是,它不起作用,因为我有两个 %s 语句,而第二个语句没有被昵称替换。然后我尝试声明一个 SQL 变量,将 %s 写入其中并使用它。像这样:

    AuthDBDUserPWQuery "SET @userName = %s; SELECT Password FROM SVNUsers WHERE Nickname = @userName"

但是,AuthDBDUserPWQuery 不理解变量。如何解决?

谢谢!

答案1

解决方案是使用 MySQL 函数:

AuthDBDUserPWQuery "SELECT SVNAuthenticationFunction(%s) as Password"

相关内容