2016-08-14 62 views
0

我學習使用ASP.NET和我碰到以下問題:使用SqlConnection()我無法訪問我的數據庫,因爲我得到了一個錯誤無法更改SQL Server用戶

無法打開數據庫「樣本」請求登錄。登錄失敗。用戶登錄失敗'華碩\安妮

代碼:

SqlConnection con = new SqlConnection("data source=(localdb)\\MSSQLLocalDB; Database=Sample;Integrated Security=True"); 

我看着它,並發現可能的問題是,用戶沒有權限訪問該數據庫。

我檢查了一下,我的數據庫中沒有用戶名爲'Asus \ Anne',但我確實有'dbo'用戶(dbowner),它有'Asus \ Anne'登錄名。

所以,我試圖改變dbo的用戶​​名爲'華碩\安妮',但它不讓我。

我也嘗試添加一個新用戶到名爲'Asus \ Anne'的數據庫中,'Asus \ Anne'登錄但我有一個錯誤說登錄已被佔用(這是有道理的)。

我覺得自己被卡住了。任何建議?

在此先感謝!

+0

好吧,所以在花費數小時更換和創建用戶之後,沒有任何工作。我能夠通過'Asus \ Anne'登錄來更改'dbo'登錄並創建'Asus \ Anne'用戶,並且我還能夠創建一個用戶使用sql server進行身份驗證。然而,我仍然有同樣的問題,直到我決定通過SSMS而不是VS創建我的數據庫,並且這個技巧。我仍然不知道爲什麼,但現在我可以使用Windows和SQL進行身份驗證。另外,我讀過重新啓動服務器很重要,但我的'重新啓動'選項總是灰顯。 – Acla

回答

1

您正嘗試使用用戶「Asus \ Anne」連接到您的SQL Server - 這是您的ASP.NET應用程序正在運行的帳戶。

此帳戶不允許連接到SQL Server - 要麼在SQL Server上爲該帳戶創建登錄名,要麼在連接字符串中指定另一個有效的SQL Server帳戶。

您可以關注此SO link。這會幫助你。

1

如果您要使用Windows身份驗證模式,您的計算機必須加入到SQL Server使用的域(或任何受信任的域),並且您應該使用已授予SQL Server權限的AD登錄名。

另請檢查SQL Server端口的防火牆設置,如果不是默認值,請指定端口號,檢查SQL Server是否允許遠程連接,並在SQL配置管理器中檢查已啓用的協議。

看起來你的數據庫在你的本地機器上 - 嘗試使用SQL身份驗證並更改連接字符串以使用SQL身份驗證 - 移除「Integrated Security = True」並添加sql登錄名和密碼。

1

您需要使用sysadmin角色登錄數據庫來更改其他用戶的用戶角色等。在這種情況下,可能'華碩\安妮'沒有這樣的提升角色來修改其他角色(我假設你已經登錄進入SQL使用Windows身份驗證)。

無論哪種方式,您都可以使用SQL身份驗證創建新的用戶角色,併爲其提供必要的用戶角色。您將不得不刪除「Integrated Security = true」,而是添加登錄名和密碼。