gpt4 book ai didi

sql-server - Azure SQL : Create login user only if not exists

转载 作者:行者123 更新时间:2023-12-04 01:53:15 25 4
gpt4 key购买 nike

我正在尝试创建一个自动化脚本,用于在现有实例上创建 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

我的问题是 sys.sysusers View 检查数据库用户,而不是登录用户。我正在尝试查找哪个系统目录 View 包含登录用户,但我找不到(我也尝试过database_principals)

注意:我找到了几种本地 SQL Server 的替代方案,但它们不适用于 Azure SQL

最佳答案

必须在上下文 Azure SQL 数据库逻辑服务器主数据库中创建/更改登录名。使用 sys.sql_logins 目录 View 来执行此任务。提供 sys.sysusers View 只是为了向后兼容,不应在 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;

关于sql-server - Azure SQL : Create login user only if not exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52002977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com