我使用控制面板功能重命名了 Windows Server。起初,这很有效。今天,我注意到我无法重命名某个文件,而以前我总是能够重命名。此文件是 SQL Server 数据库文件。SQL Server 服务成功使用了该文件。但即使在关闭服务器后,我仍然收到以下消息:
您需要获得管理员的权限才能更改此文件
因此该文件显然没有被正在运行的程序锁定。
检查Windows资源管理器中的安全设置我发现了以下情况:
- 将 SID 解析为用户名时出现明显延迟
- SQL Server 用户的名称中仍包含旧服务器名称。但这似乎无害,因为用户名是未解释的字符串(对吗?)
- 我没有发现任何可疑的东西(例如未解析的 SID 或旧服务器名称作为某些用户名的域部分)
- 即使授予所有人完全控制权也不允许我重命名文件
- 将所有权更改为管理员(我是该组的成员)恢复了访问权限
我运行了 SysInternals AccessEnum 来枚举有问题的文件所在的驱动器。输出显示了几个“???”标记。
我不完全明白为什么我失去了对该文件的访问权限。重命名服务器时一定丢失了一些权限。发生了什么?
另外,重命名服务器后我需要以某种方式修复它吗?我担心现在有很多潜在的权限问题,只有随着时间的推移我才会发现。
答案1
重命名服务器时,您没有“丢失”任何权限。安全主体由 ACL 中的 SID 引用。重命名计算机时,SID 不会更改。即使更改了,也只会影响本地用户(但事实并非如此)。如果在将安全主体从 SID 转换为显示名称时出现明显的延迟,则说明您在某处遇到了连接或 AD 问题。
该消息You require permission from Administrator to make changes to this file
是当您修改受保护文件系统位置中的文件时提示的 UAC 消息。 Program Files 就是这样一个位置,我假设它是您的数据库文件所在的位置。这是正常的。