我想阻止 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
对象资源管理器
只有当您创建服务器登录名,然后创建包含数据库用户,但该数据库用户未连接到主服务器中的登录名时,才会发生这种情况。包含的数据库用户不依赖于服务器级别的登录。您需要使用“FOR LOGIN”子句创建用户,该子句将数据库级别的用户连接到服务器级别的登录名。
创建用于在该服务器上创建的数据库的服务器登录名的正确语法如下:
-- On master database
CREATE LOGIN TestUser
WITH PASSWORD = 'ThisIsAStrongPassword!'
GO
CREATE USER TestUser
FOR LOGIN TestUser
WITH DEFAULT_SCHEMA = dbo
GO
-- create user on database level
CREATE USER TestUser
FOR LOGIN TestUser
WITH DEFAULT_SCHEMA = dbo
GO