簡體   English   中英

分布式訪問前端上的SQL Server連接

[英]SQL Server connection on distributed Access front end

我現在正在開發需要鏈接到幾個SQL Server表的應用程序。 我的Windows網絡帳戶具有連接到該服務器的權限,但我將不是唯一使用此應用程序的人。 我將其發送給人們以保存到他們的PC上,或僅將其放在公司共享的驅動器上使用(我知道,有時這會帶來問題)。 為用戶共享Windows帳戶很不方便,因為他們需要注銷並使用該應用程序,因此我想知道應用程序或ODBC連接文件本身是否可以存儲訪問表的憑據。

是否應該將連接對象配置為使用Windows登錄信息以外的其他內容(可能是SQL Server用戶名/密碼),而僅將連接對象存儲在共享位置? 我對此沒有太多經驗,也沒有嘗試過許多不同的解決方案,並且願意提出建議。

感謝你的建議

正如對該問題的評論中所建議的那樣,一種解決方案是

  • 在Windows上的SQL Server上創建用戶組,
  • 為該組創建一個SQL Server登錄名,
  • 在SQL Server中為該登錄名分配權限,
  • 然后只需根據需要從該組中添加或刪除特定的Windows用戶。

這樣,您無需弄亂每個數據庫用戶的各種SQL Server權限,並且您的應用程序可以使用Windows身份驗證連接到SQL Server,因此您不必弄亂保存的SQL Server憑據(在連接字符串中,或其他地方)。

您當然可以在連接字符串中指定用戶名和密碼-如果您在使用連接字符串時遇到問題,強烈建議使用ConnectionStrings.Com,它們的第一個Sql Server示例是

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

問題是安全性,如果用戶可以在配置文件中看到此信息,則他們可以執行帳戶可以執行的任何操作。 如果這樣做,則必須在應用程序中處理安全性。 大多數處理自身安全性的應用程序都必須在數據庫表中創建用戶和密碼(最好根本不存儲密碼,更不用說純文本了,建議使用一種哈希方式)。

一種好的策略是創建一個具有眾所周知的名稱和密碼的“登錄用戶”帳戶,根本不授予該帳戶任何讀/寫等權限,並授予對單個存儲過程的執行訪問權限

IsLoginPermitted @ID, @PASS

成功后,IsLoginPermitted將返回ID和PASS供以后使用(當然,這些ID和PASS對用戶而言是隱藏的),然后您將基於這些ID和PASS創建新的連接字符串。

暫無
暫無

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

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