我已恢复SQL-Server 2012 数据库复制到我的 D-Drive 上的文件夹。我可以访问数据库,一切似乎都正常,但当我检查 mdf 和 ldf 文件的文件访问权限时,发现没有列出权限或所有者。
MSSQLSERVER 服务帐户对 D 盘具有完全访问权限,因此我希望新创建的 mdf 和 ldf 将从该文件夹继承其权限(该文件夹具有所有权限,包括 MSSQLSERVER 帐户的完全访问权限)。
恢复数据库的用户是 sysadmin 服务器角色的成员,也是 Windows 服务器上的管理员。
为什么数据库文件没有列出文件访问权限?
祝好,Rob
答案1
您提到用于恢复数据库的帐户是本地管理员。您用来尝试查看权限的帐户是否也是服务器上的本地管理员?如果不是,那么您将无法查看权限。
SQL Server 数据库引擎对数据库文件手动设置权限,它们不会从其父文件夹继承。
默认情况下,当数据库恢复时,新数据库文件的权限设置为本地管理员组和 SQL 实例用户(默认实例为 NT SERVICE\MSSQLSERVER,命名实例为 NT SERVICE\MSSQL$InstanceName)被授予完全控制权,本地管理员组被设置为文件所有者。可以手动添加其他权限。
对于其他操作也是如此,例如当数据库被分离时。如果分离数据库的用户使用 Windows 登录连接到 SQL,则分离后数据库文件上唯一剩下的权限是对用于分离数据库的帐户的完全控制。如果用户使用 SQL 登录连接,则分离文件的权限与上述恢复的数据库文件的权限相同。