使用 windows 身份验证登录时调试 pdo 连接用户名
debug pdo connection username when windows authentication logon used
我尝试通过以下方式建立新连接:
$conn = new PDO("sqlsrv:server=SERVERNAME;database=DBNAME;MultipleActiveResultSets=false", "username", "password");
它没有用,但是当我删除用户名和密码时它工作正常。
用户名与我的 windows 登录相同,我尝试了 DOMAIN\username
或 username@domain.com
等多种组合,但没有任何效果。但是,当用户名和密码不存在时,连接正常。
错误是:
SQLSTATE[28000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'username'.
所以对我的问题,为了调试问题。
登录成功后使用自动认证是否可以查看用户名?
编辑:所以一旦登录时没有用户名并通过我尝试:
Select name FROM DBNAME.sys.syslogins
它给了我 "DOMAIN\USERNAME"
我之前试过好几次了,还是一样的错误:(
EDIT2:是否在数据库登录列表授权中?我已经尝试 SQL Studio 通过 Windows 身份验证登录 - 工作正常,但是当我 sqich SQL 服务器身份验证并使用正确的用户名和密码时,它再次给我同样的错误,好像用户名不存在了...
所以最后发现有一个账号不能设置为SQL认证登录,也不能设置windows认证。因此,如果我可以通过 windows 身份验证登录(无需输入用户名和密码),那么唯一的方法是使用相同的用户名创建新帐户并将其设置为 SQL 登录时身份验证。
如果我错了,请纠正我(主要是可以测试的人 - 因为我发现帐户的安全设置显示 "SQL Server and Windows Authentication mode" 无论如何都处于活动状态但不起作用,并且根据我们的数据库管理员,此设置不是它的用途)
我尝试通过以下方式建立新连接:
$conn = new PDO("sqlsrv:server=SERVERNAME;database=DBNAME;MultipleActiveResultSets=false", "username", "password");
它没有用,但是当我删除用户名和密码时它工作正常。
用户名与我的 windows 登录相同,我尝试了 DOMAIN\username
或 username@domain.com
等多种组合,但没有任何效果。但是,当用户名和密码不存在时,连接正常。
错误是:
SQLSTATE[28000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'username'.
所以对我的问题,为了调试问题。 登录成功后使用自动认证是否可以查看用户名?
编辑:所以一旦登录时没有用户名并通过我尝试:
Select name FROM DBNAME.sys.syslogins
它给了我 "DOMAIN\USERNAME"
我之前试过好几次了,还是一样的错误:(
EDIT2:是否在数据库登录列表授权中?我已经尝试 SQL Studio 通过 Windows 身份验证登录 - 工作正常,但是当我 sqich SQL 服务器身份验证并使用正确的用户名和密码时,它再次给我同样的错误,好像用户名不存在了...
所以最后发现有一个账号不能设置为SQL认证登录,也不能设置windows认证。因此,如果我可以通过 windows 身份验证登录(无需输入用户名和密码),那么唯一的方法是使用相同的用户名创建新帐户并将其设置为 SQL 登录时身份验证。 如果我错了,请纠正我(主要是可以测试的人 - 因为我发现帐户的安全设置显示 "SQL Server and Windows Authentication mode" 无论如何都处于活动状态但不起作用,并且根据我们的数据库管理员,此设置不是它的用途)