考勤系统用的数据库是sql server 2000,于是问开发商能否迁至mysql or pgsql?回答是No。无奈之下只好把目标转向sql server express,但不管是复制还是导入,启动程序都会出现标题所示错误,当初以为是程序不支持express版本,就不了了之了。
最近几天在仿着一些项目coding公司的SCM,为了看实例的效果,要把数据库文件附加上sql server服务器上去,然而,启动程序时也出现了同样的问题,于是google得知,是因为sql server登录名与用户不匹配的关系。
解决办法也不难(先添加登录名,可与用户名相同):
步骤1:
exec sp_change_users_login ‘REPORT’
列出当前数据库的孤立用户
步骤2:
exec sp_change_users_login ‘AUTO_FIX’,’用户名’
可以自动将用户名所对应的同名登录添加到syslogins中
步骤3:
exec sp_change_users_login ‘UPDATE_ONE’,’用户名’,’登录名’
将用户名映射为指定的登录名。
还有一种原因会造成此错误,就是登录名具有dba的权限或者系统管理的权限,去掉此权限即可。