首页 > 解决方案 > 如何检查 Azure Sql Server 服务器主体(登录)是否已存在

问题描述

我正在使用 ARM 模板在 Azure 上实例化一个新的 Sql Server 资源,作为设置的一部分,我需要创建一些用户登录。

似乎 ARM 模板不提供创建新用户主体的选项,因此我正在考虑运行 SQL 命令来执行此操作:

使用密码创建登录 = ''

使用这个命令的问题是,如果用户已经存在,它就会失败,因此它不是幂等的,这是我们需要的。

如何检查 Azure SQL Server 上是否已存在登录名?

标签: azureazure-sql-databaseazure-sql-server

解决方案


以下脚本将在逻辑 Azure SQL 服务器级别的主数据库上创建登录。

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

如果用户尚不存在,则以下 acript 将在数据库级别创建用户。

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

推荐阅读