无法添加文件权限需要将SQL Server 2012文件重定位到单独的驱动器

cro*_*sek 5 file-permissions sql-server-2012

安装新的SQL Server 2012实例后,我希望将数据库文件移动到单独的驱动器.当我在目标位置执行文件 - >属性,然后单击安全 - >编辑 - >添加 - >高级,选择位置=机器名,然后单击查找,我只看到与分析服务相关的表单:

SQLServerMSASUser$MachineName$InstanceName
Run Code Online (Sandbox Code Playgroud)

我认为我真正需要的权限是我能看到的那个存在于默认的C:驱动器位置:

MSSQL$InstanceName
Run Code Online (Sandbox Code Playgroud)

当我试图直接输入它时,它是无法识别的.如果我将目录设置为"Everyone",然后将数据库移动到那里(使用恢复),它将工作并在mdf文件上显示上述权限.当父目录未显示为列表中的可用条目时,如何在父目录上设置该权限.谢谢!

Sha*_*rpC 6

如果您无法确定所需的正确用户权限(前提是您具有管理员权限),这里有两种更简单的方法...

\n\n

方法一——磁盘更换
(即最终SQL Server数据库文件的盘符相同)

\n\n

如果您要更换 SQL Server 数据库文件所在的辅助硬盘驱动器(例如,更换更大的硬盘驱动器),则特别有用。右键单击 Microsoft SQL Server Management Studio (SSMS) 中的数据库、任务、脱机。

\n\n

然后只需复制文件并保留其所有权:

\n\n\n\n

在哪里:

\n\n
    \n
  • /E- 复制目录和子目录,包括空目录
  • \n
  • /F- 复制时显示完整的源文件和目标文件
  • \n
  • /I- 如果目标不存在并且复制多个文件,则假定目标是一个目录
  • \n
  • /V- 验证每个新文件
  • \n
  • /K- 保留属性,包括只读
  • \n
  • /O- 复制文件所有权和ACL权限
  • \n
  • /X- 复制文件审核设置(隐含/O
  • \n
\n\n

您可能还需要,具体取决于您要迁移的文件:

\n\n
    \n
  • /C- 即使发生错误也继续复制
  • \n
  • /G- 允许将加密文件复制到不支持加密的位置
  • \n
  • /H- 复制隐藏文件和系统文件
  • \n
\n\n

更换驱动器并确保驱动器号与之前相同。最后右键单击SSMS中的数据库,任务,上线。

\n\n

方法2 - 将文件移动到另一个磁盘或分区
(即SQL Server数据库文件的盘符会改变)

\n\n

当您想要释放驱动器/分区上的空间(例如您宝贵的 SSD 磁盘上的空间,以便您可以将文件放在辅助标准盘片磁盘上!)时非常有用。

\n\n

在 SSMS、任务、分离中右键单击要移动的数据库。导航到文件,这些文件通常位于类似C:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\DATAMyDatabase.mdf的多个副本MyDatabase_1.ndf。将它们复制到新位置(不用担心它们的权限)。

\n\n

然后以管理员身份打开 SSMS,否则您将出现CREATE FILE类似Access is denied下一步的错误。

\n\n

右键单击数据库,附加,添加,浏览到新定位的MyDatabase.mdf.

\n\n

瞧\xc3\xa0!如果您右键单击文件并在 SSMS 中附加之前和之后检查其权限,您会发现权限已被神奇地更正!

\n


cro*_*sek 4

查看安装日志,帐户 MSSQL$ InstanceName是以下内容的简写:

NT 服务\MSSQL$实例名称

可以直接输入我仍然不知道为什么这些没有出现在列表中。