Sql-Server

SSDT:在不屬於項目的數據庫中創建使用者

  • September 3, 2015

我希望將我的 SSDT 數據庫項目的使用者創建為同一伺服器上另一個數據庫中的使用者,並授予它連接並將其添加到db_datareader角色的權限。

我沒有這樣做。PostDeployment 腳本抱怨:

  • 不允許使用 USE 命令
  • 不知道創建使用者 OtherDB.USERNAME 語法

這怎麼可能實現?沒有腳本選項可以放置我想要的任何命令嗎?

問題中描述的操作應該不是問題。我能夠創建一個部署後腳本並添加以下程式碼:

USE [tempdb];
GO
PRINT DB_NAME();

IF (USER_ID(N'g') IS NULL)
BEGIN
   PRINT 'Creating user [g]...';
   CREATE USER [g] WITHOUT LOGIN;
END;
ELSE
BEGIN
   PRINT 'Dropping user [g]...';
   DROP USER [g];
END;

它建構和發布沒有錯誤,並按預期執行命令。

確保您的 SQL 腳本確實是部署後腳本。如果它設置為建構腳本,那麼它可能會出現這些錯誤。查看腳本的屬性並確保Build Action設置為PostDeploy

請確保您使用的是 SSDT 的最新更新。最新版本可以在這裡找到:

下載最新的 SQL Server 數據工具

引用自:https://dba.stackexchange.com/questions/112244