[英]Connect to sql server with domain user id - SQLServerException: Login failed for user
[英]User login failure while connect to MSSQL server
嘗試使用JDBC從Java連接到MS SQL Server:
String url = "jdbc:sqlserver://GM\\SQLEXPRESS:1433;databaseName=Northwind";
connServer.dbConnect(url, "sa","sa");
連接時出現異常:
jdbc:sqlserver://GM\SQLEXPRESS:1433;databaseName=AdventureWorks
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. ClientConnectionId:1157e4ca-ae88-4e41-b60c-d93b808ba990
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:279)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:99)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4346)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at Test.ConnectMSSQLServer.dbConnect(ConnectMSSQLServer.java:19)
at Test.ConnectMSSQLServer.main(ConnectMSSQLServer.java:48)
我期望通過使用SQL Server身份驗證進行連接。 因此,我將sa
用戶的密碼更改為sa
。 我可以使用sa
用戶從SQL Server管理控制台連接到SQL Server身份驗證。 但是讓我不安的是用戶sa
上的紅十字會:
為什么在那里。 它與我無法連接到數據庫的原因有某種聯系嗎?
UPD
我用密碼tst
創建了用戶tst
並映射到NorthWind DB:
碼:
connServer.dbConnect(url, "tst","tst");
但是得到了同樣的錯誤。 順便說一句,現在tst
和sa
用戶上的紅tst
不見了。
試圖將tst
添加到sysadmins,但出現錯誤:
此處的最佳做法是創建一個特定的用戶進行交互。
然后,該用戶可以具有所需的特定權限。 因此,即使連接詳細信息確實以某種方式受到損害,DBA仍可以限制帳戶訪問以限制任何損害。
當然,許多DBA都會禁用“ SA”,因為它是一個已知帳戶。 我當然會這樣做,並建議我的客戶也這樣做(大多數會忽略建議)。 這不是對安全性抱有偏執的情況,更多的是您是否有足夠的偏執。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.