我将SQL Server 2012数据库还原到D驱动器上的文件夹。 我可以访问数据库,似乎一切正常,但是当我检查mdf和ldf文件的文件访问权限时, 没有权限或所有者列出 。
MSSQLSERVER服务帐户可以完全访问D盘,因此我认为新创build的mdf和ldf将从文件夹(拥有所有权限,包括对MSSQLSERVER帐户的完全访问权限)inheritance它们的权限。
正在还原数据库的用户是sysadmin服务器angular色的成员,并且是Windows服务器上的pipe理员。
为什么数据库文件没有列出文件访问权限?
最好的问候,罗布
您提到用于恢复数据库的帐户是本地pipe理员。 您用来尝试查看权限的帐户也是服务器上的本地pipe理员? 如果没有,那么你将无法看到权限。
SQL Server数据库引擎在数据库文件上手动设置权限,但不会从父文件夹inheritance。
默认情况下,数据库还原时设置新数据库文件的权限,以使本地pipe理员组和SQL实例用户(用于默认实例的NT SERVICE \ MSSQLSERVER,用于命名实例的NT SERVICE \ MSSQL $ InstanceName)被授予完全控制并将本地pipe理员组设置为文件所有者。 其他权限可以手动添加。
对于其他操作也是如此,例如当数据库被分离时。 分离后,数据库文件上留下的唯一权限是对用于分离数据库的帐户的完全控制,如果用户使用Windowslogin将分离数据库连接到SQL。 如果用户使用SQLlogin连接,那么分离文件的权限与恢复的数据库文件一样。