Azure SQL 服务器,是否可以禁用服务器管理员(创建后)?
Azure SQL Server, is it possible to disable server admin (after creation)?
案例
我想使用 Azure SQL 服务器,如 best practices how to secure Azure SQL Server 中所述,最好使用 AAD 帐户访问您的 server/database 而不是 SQL 帐户.
我在 Microsoft 和博客的文档站点上阅读了几篇文章,但我找不到 disable/remove 服务器管理员帐户,在您拥有 Azure SQL 服务器和一个创建了 AAD SQL 管理员并将其附加到 Azure SQL 服务器。
我知道创建 Azure SQL 时服务器管理员登录名和密码是必需的,但我希望在创建服务器和 AAD SQL 管理员后可以删除。
我为什么要这个?
- 有足够多的公司必须规定(继承自本地)帐户必须由中央身份存储控制,例如 AAD。
- 密码轮换必须完成,当你有一个集中的身份存储而不是你必须为很多 Azure SQL 服务器这样做时,这会容易得多。
问题
是否可以禁用 SQL 服务器管理员(sql 帐户)?
我认为禁用 SQL 服务器管理器是不可能(或不可能)的。
Azure 订阅所有者和 AAD SQL 管理员身份拥有 Azure SQL 服务器的共同所有权。任何一个都需要能够重新获得对服务器的管理访问权限。
Azure 订阅所有者用来强制进入自己的数据库的机制是从 Azure 门户重置 SQL 服务器管理员密码。
这大致类似于 Windows 管理员如何通过在单用户模式下启动服务来强制系统管理员访问 SQL 服务器。
我认为您能做的最好的事情就是丢掉 SQL 服务器管理员的密码,这样,如果不先在门户中重置密码,任何人都无法使用该帐户登录。 EG 运行:
declare @sql nvarchar(max) = concat(N'alter LOGIN [youradmin] WITH PASSWORD=N''',newid(), N'''')
exec (@sql)
06/21 更新:
Microsoft 发布了 Azure Active Directory only authentication for Azure SQL,它有效地禁用了使用任何 SQL 用户进行身份验证的可能性。
注意注意事项
- Azure AD-only auth is supported at the Azure SQL server level
- This means that when this mode is enabled, all databases that belong to this server can only be accessed using Azure AD
authentication
- Enabling Azure AD-only auth does not remove existing SQL logins or SQL users based on these logins. They continue being stored in SQL
metadata, but cannot be used for SQL authentication
- Even though the Azure AD-only auth is enabled, with proper SQL permissions for Azure AD users, SQL logins and SQL users can be
created. However, the authentication process to connect to Azure SQL
using SQL logins/users will fail
- Azure AD users with proper permissions can impersonate existing SQL users
- Impersonation continues working between SQL authentication users even though the Azure AD-only auth feature is enabled. This is
consistent to the way impersonation works today, where even disabled
users can be impersonated.
Microsoft is working on 允许所谓的“仅 AAD 身份验证”,这将有效地禁用服务器管理员登录,因为完整的 SQL 身份验证被禁用。
案例
我想使用 Azure SQL 服务器,如 best practices how to secure Azure SQL Server 中所述,最好使用 AAD 帐户访问您的 server/database 而不是 SQL 帐户.
我在 Microsoft 和博客的文档站点上阅读了几篇文章,但我找不到 disable/remove 服务器管理员帐户,在您拥有 Azure SQL 服务器和一个创建了 AAD SQL 管理员并将其附加到 Azure SQL 服务器。
我知道创建 Azure SQL 时服务器管理员登录名和密码是必需的,但我希望在创建服务器和 AAD SQL 管理员后可以删除。
我为什么要这个?
- 有足够多的公司必须规定(继承自本地)帐户必须由中央身份存储控制,例如 AAD。
- 密码轮换必须完成,当你有一个集中的身份存储而不是你必须为很多 Azure SQL 服务器这样做时,这会容易得多。
问题
是否可以禁用 SQL 服务器管理员(sql 帐户)?
我认为禁用 SQL 服务器管理器是不可能(或不可能)的。
Azure 订阅所有者和 AAD SQL 管理员身份拥有 Azure SQL 服务器的共同所有权。任何一个都需要能够重新获得对服务器的管理访问权限。
Azure 订阅所有者用来强制进入自己的数据库的机制是从 Azure 门户重置 SQL 服务器管理员密码。
这大致类似于 Windows 管理员如何通过在单用户模式下启动服务来强制系统管理员访问 SQL 服务器。
我认为您能做的最好的事情就是丢掉 SQL 服务器管理员的密码,这样,如果不先在门户中重置密码,任何人都无法使用该帐户登录。 EG 运行:
declare @sql nvarchar(max) = concat(N'alter LOGIN [youradmin] WITH PASSWORD=N''',newid(), N'''')
exec (@sql)
06/21 更新: Microsoft 发布了 Azure Active Directory only authentication for Azure SQL,它有效地禁用了使用任何 SQL 用户进行身份验证的可能性。
注意注意事项
- Azure AD-only auth is supported at the Azure SQL server level
- This means that when this mode is enabled, all databases that belong to this server can only be accessed using Azure AD authentication
- Enabling Azure AD-only auth does not remove existing SQL logins or SQL users based on these logins. They continue being stored in SQL metadata, but cannot be used for SQL authentication
- Even though the Azure AD-only auth is enabled, with proper SQL permissions for Azure AD users, SQL logins and SQL users can be created. However, the authentication process to connect to Azure SQL using SQL logins/users will fail
- Azure AD users with proper permissions can impersonate existing SQL users
- Impersonation continues working between SQL authentication users even though the Azure AD-only auth feature is enabled. This is consistent to the way impersonation works today, where even disabled users can be impersonated.
Microsoft is working on 允许所谓的“仅 AAD 身份验证”,这将有效地禁用服务器管理员登录,因为完整的 SQL 身份验证被禁用。