Sou*_*rer 6 sql-server authentication azure azure-sql-database
我正在尝试创建一个自动化脚本,用于在现有实例上创建 Azure SQL 数据库。
我知道我可以使用基于 CLI 的自动化,但我需要对创建内容和时间进行更多控制。
现在我停止了登录创建。我只想在不存在的情况下创建登录用户(如果存在则更改密码)。
这是我的代码:
IF NOT EXISTS (SELECT name FROM sys.sysusers WHERE name='$(dbUserName)')
BEGIN
CREATE LOGIN $(dbUserName) WITH PASSWORD='$(dbUserPassword)';
END
ELSE
BEGIN
ALTER LOGIN $(dbUserName) WITH PASSWORD='$(dbUserPassword)';
END
Run Code Online (Sandbox Code Playgroud)
我的问题是 sys.sysusers 视图检查数据库用户,而不是登录用户。我试图找到哪个系统目录视图包含登录用户,但我找不到(我也尝试过database_principals)
注意:我找到了几种本地 SQL Server 的替代方案,但它们不适用于 Azure SQL
必须在上下文 Azure SQL 数据库逻辑服务器主数据库中创建/更改登录名。使用sys.sql_logins目录视图来执行此任务。提供该sys.sysusers视图只是为了向后兼容,不应在 Azure 或本地 SQL Server 中继续使用。
IF NOT EXISTS (SELECT name FROM sys.sql_logins WHERE name='$(dbUserName)')
BEGIN
CREATE LOGIN $(dbUserName) WITH PASSWORD='$(dbUserPassword)';
END
ELSE
BEGIN
ALTER LOGIN $(dbUserName) WITH PASSWORD='$(dbUserPassword)';
END;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5169 次 |
| 最近记录: |