已禁用的Azure SQL服务器级用户仍可登录,如何彻底阻止其访问?
问题:禁用SQL登录账号后,指定数据库仍可连接访问
我想要彻底阻止某个SQL登录账号的访问权限,但当在连接属性中指定其对应的数据库时,服务器仍会接受该账号的凭据:

以下是所使用的脚本:
-- Master CREATE LOGIN pmp WITH PASSWORD = 'xxx' GO -- User database CREATE USER pmp FOR LOGIN pmp WITH DEFAULT_SCHEMA = dbo GO EXEC sp_addrolemember N'db_owner', N'pmp' GO -- Master ALTER LOGIN pmp DISABLE GO
对象资源管理器(Object Explorer)

解决方案
仅禁用登录账号不足以彻底阻止访问,需结合以下操作实现完全限制:
清除数据库映射权限
在对应的用户数据库中执行以下任一操作:USE [你的用户数据库名] GO -- 方式1:彻底删除数据库用户,清除登录与数据库的映射关系 DROP USER pmp GO -- 方式2:若需保留用户但禁止连接,执行权限拒绝 DENY CONNECT TO pmp GO拒绝服务器级连接权限
在master数据库中执行,从根源阻止该账号登录服务器:USE master GO DENY CONNECT SQL TO pmp GO验证禁用状态
可通过以下脚本确认登录的禁用状态:SELECT name, is_disabled FROM sys.server_principals WHERE name = 'pmp'
执行以上操作后,该账号无论是否指定数据库,都无法再连接到SQL Server。
内容的提问来源于stack exchange,提问作者Sergio Jr
相关产品推荐
相关产品推荐

