如何拒绝除 sa BY CODE 之外的所有用户访问数据库?我知道如何使用 management studio 中的界面来做到这一点,但我需要在脚本中使用它。
我不愿意提供此代码,因为如果您没有“sa”密码,或者“sa”用户被禁用,或者不允许 SQL Server 登录,它可能会错误地拒绝所有人的访问.
以下代码将生成 T-SQL 语句以禁用不是“sa”用户的每个 Windows 用户、组和 SQL Server 登录的登录:
SELECT 'ALTER LOGIN ' + QUOTENAME(sp.name) + ' DISABLE;'
FROM sys.server_principals sp
WHERE sp.principal_id > 100
AND sp.is_disabled = 0
AND sp.type IN (
'U' -- Windows user
, 'G' -- Windows Group
, 'S' -- SQL user
);
Run Code Online (Sandbox Code Playgroud)
为了实际撤销对这些帐户的访问,您需要将结果复制并粘贴到新的命令窗口中并通过 F5 运行它们
我故意不添加代码来自动化最后一部分,因为这很容易被用来将自己锁定在 SQL Server 之外。如果你想自动化它,你可以搜索动态 SQL 和EXEC (@var).