对象名 'dnt_templates' 无效解决方法: --解决重装系统并还原论坛数据库后,数据库帐号不关联的问题。 Exec sp_configure 'allow updates',1 --允许更新系统表。 如上法不行,请试用下面的方法: 我有自己的服务器,我将SQLServer数据库备份后,我重新安装了SQLServer并将备份数据库还原,但论坛运行后提示表不存在。
例如:新建数据库discuz,新建一个用户user1,指定user1对数据库discuz有权限,然后安装Discuz!NT SQLServer版,Discuz!NT的安装程序自动为用户创建表,此时discuz中的表的所有者就是user1,这样的好处是不需要user1用户拥有任何sqlserver权限身份,安全性高(有的用户用sa或其它管理员帐号来运行论坛,本地测试当然是无所谓,但如果是在服务器上这么做,一旦被恶意利用,可能就要威胁到所有数据库甚至整个服务器的系统!还有一些程序没有安装程序,只是提供SQL脚本让用户创建表,很多用户就用管理员帐号来创建了表,那时表的所有者为dbo,因此一般不出现该问题)。后来备份数据库并重新安装SQLServer,再将备份的数据库还原,discuz数据库的所有者还是user1,但user1不存在,你新指定的用户user2可能也无法再操作discuz数据库。虽然你看到表并没有缺少,但user2却无权访问到它们,因此可能会提示表不存在。 解决这个问题的办法很简单:假设你的数据库叫discuz,原来的所有者是用户user1,备份还原后你新建立了一个用户user2,遇到上述问题后,以管理员身份进入查询分析器,选择数据库discuz,执行以下SQL命令: EXEC sp_change_users_login update_one, 'user1', 'user2' 执行完毕后,user2即对discuz数据库拥有权限。另外特别需要提醒的是:当你修改了数据库帐号后,请将论坛dnt.config中的小节里面帐号信息也做相应的修改,然后重新启动IIS里的应用程序池。 |
2007年10月30日 星期二 16:23