我想阻止 SQL 登录的整个访问。
我使用 master 数据库运行以下命令来禁用名为“pmp”的登录:
ALTER LOGIN pmp DISABLE
但是服务器一直接受他的凭据。
我错过了什么?
这些是用于登录/用户创建的脚本:
主数据库
CREATE LOGIN pmp WITH PASSWORD = 'xxx'
客户数据库
CREATE USER pmp FOR LOGIN pmp
EXEC sp_addrolemember N'db_owner', N'pmp'
只有当您创建服务器登录名,然后创建包含数据库用户,但该数据库用户未连接到主服务器中的登录名时,才会发生这种情况。包含的数据库用户不依赖于服务器级别的登录。
正确的语法如下:
-- 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