Visual Studio数据库项目脚本域名

时间:2013-11-02 23:43:11

标签: sql sql-server visual-studio-2010 deployment database-security

我正在Visual Studio 2010中的SQL Server 2008数据库服务器项目中创建用户创建脚本。

脚本看起来像这样......

CREATE LOGIN Domain\User FROM WINDOWS

我将在我的台式电脑和笔记本电脑上进行开发。既不在域上运行也不使用本地用户,例如DESKTOP\TestUserLAPTOP\TestUser

我需要做的是以某种方式将一个变量注入到自动设置域名的脚本中。我相信SQL Server这是@@SERVERNAME。然后我可以在我的两台PC上工作,脚本也可以工作。目前,如果我在说我的笔记本电脑上运行它,我得到一个错误,因为DESKTOP\TestUser不是我的笔记本电脑上的Windows Principal。

我查看了.sqlcmdvars文件,我可以在那里设置一个注入脚本的变量。但是,我似乎无法将其转化为动态内容,例如@@SERVERNAME

我还看过从我的部署后脚本运行EXEC,但是我收到一条错误,说这个命令在这种情况下无效 - 我相信这意味着VS2010数据库项目不接受EXEC。

1 个答案:

答案 0 :(得分:1)

您可以使用以下脚本来实现此目的。它对我很有用,并为本地用户创建了一个登录名:

declare @sql nvarchar(max) = N'create login [' + @@SERVERNAME + N'\TestUser] from windows'
exec(@sql)