对于 Vista 64 位上的 SQL Server 2008 开发人员版:
我尝试使用附加/分离方法使用 Vista 管理员帐户复制数据库,但由于文件权限错误而失败,因此我向用户提供了 sql 服务正在以写入和修改目录的方式运行。副本没有用。然后我完全控制了它。副本有效。
那有意义吗?
如果我撤销用户的完全控制权,会导致问题吗?
奇怪的是,在现有的工作数据库中,文件在不同的目录中,数据库的目录和文件没有特殊权限,那么为什么副本需要完全控制?
对于 Vista 64 位上的 SQL Server 2008 开发人员版:
我尝试使用附加/分离方法使用 Vista 管理员帐户复制数据库,但由于文件权限错误而失败,因此我向用户提供了 sql 服务正在以写入和修改目录的方式运行。副本没有用。然后我完全控制了它。副本有效。
那有意义吗?
如果我撤销用户的完全控制权,会导致问题吗?
奇怪的是,在现有的工作数据库中,文件在不同的目录中,数据库的目录和文件没有特殊权限,那么为什么副本需要完全控制?
当您分离数据库时,MDF/LDF 文件可能会设置比您预期更多的受限权限,例如对执行分离的主体独占 - 可能是 SQL Server 服务帐户或执行分离的用户的域帐户。我过去不得不在文件的“属性”>“安全”选项卡上为其他用户手动添加权限,否则文件就像被锁定一样。另请参阅http://www.onupdatecascade.com/2009/07/sql-server-locks-mdf-and-ldf-files-upon.html
也:http: //msdn.microsoft.com/en-us/library/ms189128.aspx
(感谢GrumpyOldDBA)
如果您正在处理的服务器和/或数据不需要设置这些限制性权限,您可以在 SQL Server 中设置一个启动标志,该标志将覆盖此功能。我理解微软的目的——他们假设如果你分离一个数据库,他们不希望任何人带着文件走开;但是,我认为阻止优秀的黑客这样做说起来容易做起来难,加密数据库是保护数据的最佳方法。
无论如何,有一个“Trace Flag 1802”的名字很奇怪,因为它与跟踪无关。如果要保留此行为,则需要将其添加到 SQL 配置管理器中的 SQL 启动中。
https://support.microsoft.com/en-us/kb/922804
我自己也有同样的问题,并在 StackExchange 中找到了答案: https ://dba.stackexchange.com/a/77683/11001