2017-10-19 91 views
0

我有一個單獨的SQL Server和兩個數據庫,用於更新我使用Visual Studio SSDT項目。在VS17中的多個SQL Server數據庫項目之間共享SQL登錄

在我的VS解決方案中,我有兩個名爲Db_1和Db_2的SQL數據庫項目。 Db_2有大量填充數據的表。 Db_1內部我創建了一個從Db_2中選擇數據的視圖。

我在解決方案中遇到的問題是,如何在兩個數據庫項目之間共享SQL Server登錄名,以便SQL Server登錄名映射到多個用戶。

我目前在Db_1項目中具有「CREATE LOGIN」(SQL身份驗證)腳本,並且Db_1也具有對Db_2的引用,以便能夠查看視圖使用的表。

當我從Db_2添加到Db_1的引用,以便使用登錄創建用戶將授予選擇表的權限,我得到一個循環引用。

是否有可能在兩個sql數據庫項目中共享SQL Server登錄名? 或者我應該以不同的方式來看待這個?

謝謝。

+0

基本上,你不應該使用SQL Server登錄,你應該使用Windows登錄。然後,您不必部署它們(或者更重要的是:在您的部署和配置中放置明文密碼)。然而,有很多事情需要考慮,這些問題遠遠超出了這個問題的範圍,主要是,您部署的基礎設施是什麼類型? –

+0

從你的問題來看,如果你使用了一臺服務器和兩個數據庫,或者你使用了兩臺不同的服務器,這是不明確的。請確認它 – sepupic

+0

我已更新描述@sepupic。謝謝。 – ccosgrove

回答

0

好吧,所以我不確定這是否是實現解決方案的最佳方式,但根據上面的說明,我有兩個項目。我創建了一個名爲common的第三個項目,然後在另外兩個項目中引用了公共項目,並將服務器登錄移到了那裏。希望這可以幫助。仍然有興趣知道是否有更好的方法來做到這一點。

+0

您需要將其引用爲「相同的數據庫」(當您引用數據庫時,您有該選項)。在這種情況下,當您從Db_1或Db_2數據庫發佈這些登錄信息時,您不需要單獨發佈該數據庫。 –