有什么方法可以使用 MSBUILD 创建 SQL 服务器登录?
Is where a way to create an SQL Server login with MSBUILD?
我必须为我们的应用程序创建一个新的 SQL 服务器用户。为了省去在我们的每个安装上执行此操作的工作,我希望我们的 MSBUILD 脚本来处理它。我将登录用户和密码作为构建脚本中的变量。用户只能是 data-reader.
有没有办法轻松做到这一点?
您可以使用
创建 sql 用户
create user $(username)
其中 $(username) 将是您的变量,并在 msbuild 执行期间与您的参数一起传递
您可以使用 SQL Server Command Line Utilities(这个包有不同的版本,确保您选择与您的 OS 匹配并且与您的 [=38= 版本兼容的版本] 服务器).
sqlcmd 实用程序允许您在命令提示符处输入 Transact-SQL 语句、系统过程和脚本文件。
您现在可以创建 SQL 脚本(例如 createuser.sql):
USE [$(DatabaseName)]
GO
-- If the user exists, drop it first
IF EXISTS (select principal_id FROM sys.database_principals where [name] = '$(DatabaseUser)' AND type = 'U')
BEGIN
DROP USER [$(DatabaseUser)]
END
-- Create it
CREATE USER [$(DatabaseUser)] FOR LOGIN [$(SqlLogin)]
-- And add it to the Role db_datareader
ALTER ROLE db_datareader ADD MEMBER [$(DatabaseUser)]
使用 sqlcmd 您现在可以从命令行调用此脚本,如下所示:
sqlcmd -v DatabaseName="MyDatabase" DatabaseUser="Pete" SqlLogin="John" -i "createuser.sql" -S "mymachine\mySqlInstance"
您现在可以使用 Exec
任务创建一个 MSBuild 项目文件,该任务将为您调用该语句:
<Exec Command="sqlcmd -v ..." ... >
</Exec>
请注意,执行 sqlcmd 的用户应在 Sql 服务器中具有执行脚本操作的权限。 SqlCmd 允许您指定特定的用户名和密码。
我必须为我们的应用程序创建一个新的 SQL 服务器用户。为了省去在我们的每个安装上执行此操作的工作,我希望我们的 MSBUILD 脚本来处理它。我将登录用户和密码作为构建脚本中的变量。用户只能是 data-reader.
有没有办法轻松做到这一点?
您可以使用
创建 sql 用户create user $(username)
其中 $(username) 将是您的变量,并在 msbuild 执行期间与您的参数一起传递
您可以使用 SQL Server Command Line Utilities(这个包有不同的版本,确保您选择与您的 OS 匹配并且与您的 [=38= 版本兼容的版本] 服务器).
sqlcmd 实用程序允许您在命令提示符处输入 Transact-SQL 语句、系统过程和脚本文件。
您现在可以创建 SQL 脚本(例如 createuser.sql):
USE [$(DatabaseName)]
GO
-- If the user exists, drop it first
IF EXISTS (select principal_id FROM sys.database_principals where [name] = '$(DatabaseUser)' AND type = 'U')
BEGIN
DROP USER [$(DatabaseUser)]
END
-- Create it
CREATE USER [$(DatabaseUser)] FOR LOGIN [$(SqlLogin)]
-- And add it to the Role db_datareader
ALTER ROLE db_datareader ADD MEMBER [$(DatabaseUser)]
使用 sqlcmd 您现在可以从命令行调用此脚本,如下所示:
sqlcmd -v DatabaseName="MyDatabase" DatabaseUser="Pete" SqlLogin="John" -i "createuser.sql" -S "mymachine\mySqlInstance"
您现在可以使用 Exec
任务创建一个 MSBuild 项目文件,该任务将为您调用该语句:
<Exec Command="sqlcmd -v ..." ... >
</Exec>
请注意,执行 sqlcmd 的用户应在 Sql 服务器中具有执行脚本操作的权限。 SqlCmd 允许您指定特定的用户名和密码。