簡體   English   中英

連接到MSSQL服務器時用戶登錄失敗

[英]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");

但是得到了同樣的錯誤。 順便說一句,現在tstsa用戶上的紅tst不見了。

試圖將tst添加到sysadmins,但出現錯誤:

在此處輸入圖片說明

此處的最佳做法是創建一個特定的用戶進行交互。

然后,該用戶可以具有所需的特定權限。 因此,即使連接詳細信息確實以某種方式受到損害,DBA仍可以限制帳戶訪問以限制任何損害。

當然,許多DBA都會禁用“ SA”,因為它是一個已知帳戶。 我當然會這樣做,並建議我的客戶也這樣做(大多數會忽略建議)。 這不是對安全性抱有偏執的情況,更多的是您是否有足夠的偏執。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM