我的网站使用的数据库是SQLExpress,发布的时候遇到“无法更新数据库 "......MDF",因为数据库是只读的”问题。给internet来宾写权限也不行。
在网上搜了一下,都是说要给MDF所在目录(如:app_data)设定权限,让EveryOne有写权限。
这样不好,虽然多数服务器都禁止guest账户,但是这样仍然十分危险。其实,无需EveryOne,除了internet来宾外,只需要aspnet账户即可。
有几点需要注意:
1、无需完全控制,只要有写入权限即可;
2、也无需对那个目录,只要对MDF和LDF这个两个文件即可;
另外,当你访问了你的网页后,从性能的角度考虑,内存中有信息存留,这些信息其中就包括权限信息。此时即使你修改了谋目录或者文件的访问权限,也不会立即生效,要等那些信息从内存消失,如果等不及就重启iis。
不过,这也说明asp.net的低层代码实际上有很大的权力,对文件的访问是它自己根据权限信息约束自己而已,似乎不是受系统的约束,这不能说不是一个可怕的漏洞