数据库使用 windows 身份验证而不是服务器

Database uses windows authentication instead of server

我有一个包含多个用户的本地 MSSQL 数据库。我在 Management Studio 中成功使用服务器身份验证,但是当我尝试在 QT 中连接数据库时,它使用本地 windows 用户名而不是我提供的用户名。

代码:

db.setDatabaseName("DRIVER={SQL Server};SERVER={8SQLQT};DATABASE=GradingSystem;Trusted_Connection=yes;");
db.setUserName("ivanov");
db.setPassword("1");
db.open(); 
qDebug() << db.userName() << db.lastError();

调试输出:

"ivanov" QSqlError("18456", "QODBC3: Unable to connect", "[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user '8sqlqt\asdfgh'.")

asdfgh 是本地 windows 用户的名称。

你试过吗?

db.setDatabaseName("DRIVER={SQL Server};SERVER={8SQLQT};DATABASE=GradingSystem;Trusted_Connection=no;user_id=ivanov;password=1;");
db.open();
qDebug() << db.userName() << db.lastError();