我有很多用户帐户和服务器帐户需要在SQL Azure上创建,然后在其他4个环境中(DEV,QA,UAT和预生产),我遇到了一些问题。

问题1.必须在主 /创建用户上完成创建登录名,必须在数据库中完成。但是由于您无法使用 Use 声明,至少我需要在2批中进行此操作。

问题2.您似乎无法在动态SQL或作为作为一部分的一部分中执行创建登录/创建用户代码 IF 块,因此如果不存在,我不能执行每个创建语句的检查。

我是在这里打nook脚吗,还是还有其他简单/强大的方法来脚本脚本创建SQL Logins&db用户,并在SQL Azure中检查了一些基本存在检查?

有帮助吗?

解决方案

您应该能够使用PowerShell进行Azure来完成所需的工作。

这是如何创建数据库的示例:http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx

这是创建SQL用户的PowerShell示例:http://sqldbawithabeard.com/2013/09/23/add-user-to-database-with-powershell/

其他提示

我确定您已经解决了这个问题,但是我只是在Azure SQL中使用此脚本以创建登录(如果不存在) master):

IF NOT EXISTS (SELECT * FROM sys.sql_logins WHERE name = 'Blah')
    CREATE LOGIN Blah WITH PASSWORD = 'BS#ah12!!@#' 
ELSE
    PRINT 'Already exist'

如果不存在该用户(与实际数据库运行),则此脚本创建该脚本:

IF NOT EXISTS (SELECT * FROM sys.sysusers WHERE name='Blah')
    CREATE USER Blah FOR LOGIN Blah WITH DEFAULT_SCHEMA = dbo
ELSE
    PRINT 'Already exists'

(作为旁注,我应该从 sys.sql_logins 并用它来查找 sys.sysusers, ,但是我正在使用惯例来解决这个问题。看 https://stackoverflow.com/a/36654590/1462905)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top