2011-10-26 160 views
0

我創建了連接到數據庫的連接字符串,還有我可以爲每個數據庫創建特定權限的用戶。如果我可以通過我的代碼中的連接字符串訪問該數據庫,而不使用任何用戶爲數據庫創建的用戶,那麼用戶有多好?請解釋。謝謝。SQL Server登錄和用戶?

+0

你使用了什麼連接字符串屬性?你的安全設置是否設置爲true? –

+0

根本不清楚你在問什麼。不是你的問題的答案:http://stackoverflow.com/questions/7902766/implement-database-security足夠? –

+0

爲數據庫分配的用戶dosn't意味着登錄,我如何使用戶的用戶,如果我不能使用它在代碼或sql登錄? – ykh

回答

2

您只能以用戶身份訪問數據庫。
無法使用沒有用戶的連接字符串(或使用Windows身份驗證)。

+1

您可以在未明確指定用戶的情況下使用集成安全性。 –

+0

@TomasJansson我認爲這將有資格使用Windows身份驗證。 –

+0

@AndrewBarber哦......錯過了那部分:)。這是事實,那就是Windows身份驗證。 –

0

審計目的是其中的一個用途。你知道哪些用戶執行了什麼,如果你的表存儲這些信息。

例如SUSER_SNAME()USER_NAME()返回執行查詢的人員的用戶名。

在使用Sql Server auth的ASP.NET上,執行語句的人員的用戶名將始終爲連接字符串中指定的用戶名。例如,對於使用集成Windows身份驗證的Windows應用程序,將從他的域帳戶中選取用戶名,但仍需要將其映射爲特定數據庫上的用戶。

0

您通常使用您在連接字符串內的數據庫中創建的用戶之一。除非您正在使用集成身份驗證,否則您正在模擬用戶,並且該用戶也需要在數據庫中創建。無論哪種方式,您都需要數據庫中的用戶通過連接字符串來訪問它。

0

只有三個獨立用戶的快速好處。

1)直接訪問數據庫:如果他們使用SQL Server Management Studio(或類似的)進行即席查詢,您希望每個用戶都有一個單獨的用戶名和密碼。

2)審計:通過使用不同的用戶名和密碼,就可以登錄活動向特定用戶,這樣你就會知道到底是誰不小心碰到命令DROP TABLE CUSTOMERS

3)安全性:不同的用戶可以被賦予不同的層次因此沒有人不應該能夠不小心運行命令DROP TABLE CUSTOMERS

此外,您可以設置連接字符串,以便它接受用戶名和密碼(如果您願意),以便您的客戶端應用程序將仍然要求用戶的證書來驗證他們需要的訪問級別(如果這對您的應用程序是適合的)。

相關問題