sql server 2005 express file database readonly

当开发环境里的sql server 2005 express数据库文件copy到发行环境里,往往面临权限更改的问题。
比如开发环境里是 nt authority/xxx windows集成帐号,但发行环境里不可能保证这个帐号和密码与开发环境一致。一个较好的方法是将之设置为 sql server帐号,比如使用sa和相关的密码(更安全自然是使用专门的帐号,而不用sa)
但即便如此,copy到发行环境里,还会出现数据库文件只读的问题。这一般是由于在sql server 05 express使用的network service权限不足够更改数据库文件。一个方便的解决方法是将数据库文件所在的目录权限增加network service,使之安全控制(可能修改和写入也足够)。重启sql server(配置管理器里)。到这一步按我的实验仍是只读。打开management studio express,先将该只读的数据库文件detach掉(好像会提示某个信息说detach失败,没关系),关闭对象链接器然后再重新打开,这时表明已经成功detach掉了,重新attach进来,发现已经可用。
权限的问题有时候整起来十分麻烦,这问题足足花了我三、四个小时。

Leave a Reply

Your email address will not be published. Required fields are marked *