Sql-Server
SSDT:在不屬於項目的數據庫中創建使用者
我希望將我的 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 的最新更新。最新版本可以在這裡找到: