现在的位置: 首页 > 综合 > 正文

sql server 2000中的数据库附加到sql server 2005中会遇到的一些问题

2018年04月09日 ⁄ 综合 ⁄ 共 1614字 ⁄ 字号 评论关闭

1,程序总是提示用户"xxx"登录失败

Exception Details:System.Data.SqlClient.SqlException:用户'GlobeChineseClub'登录失败

 

1、SQL Server创建“电脑名/ASPNET”用户比如我创建HP-2V47VI88M4GB/ASPNET
2、在SQL Enterprise manager里打开“安全性”文件夹,右击“登录”,选择“新建登录……”“常规”选项卡,“名称”填HP-2V47VI88M4GB/ASPNET,其他默认;“数据库访问”选项卡,指定访问的数据库,我指定XXX数据库

3、打开数据库企业管理器,然后选择数据库-安全性-找到刚才报错的哪个'XXX/ASPNET' -右键"属性";

4、选择"用户映射"选项---在里面将我们要访问的数据库选中,先别急着点确定;

5、再选择我们刚才选择的那个数据库,在下面的"数据库角色成员身份"里要选择"db_owner"权限和“public

 

 

 

 

 

 

2.SQL Server 2005数据库关系图---"此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的
sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或   Alter   AUTHORIZATION   语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。

解决方法如下:

1、设置兼容级别为90(2005为90)

USE    [master]  

GO   EXEC    dbo.sp_dbcmptlevel    @dbname='数据库名',    @new_cmptlevel=90  

GO   

或是选责你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定,

    这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。

2、通过以上的方法操作,如果问题依然存在的话,按下列方法继续

选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后

use [你的数据库名] EXEC     sp_changedbowner     'sa'

执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。 就可以看到原先建的关系图了。

 

 

 

 

 

 

3.对于"sql2000 因为选定的用户拥有对象,所以无法除去该用户"问题的解决方法, 感觉与我遇到的其中一个问题类似, 就单独把这个问题述一下吧.

 

在本地调试的一个数据库放到服务器上后发现数据库的用户名跟着数据库过去了(废话,本来就是数据库系统表中的一条记录,能不过去吗?), 但登录名支了没过去, 就随手想创建一个登录名, 以给该用户使用的, 但创建登录名时发现可能是出于安全考虑吧, 创建的登录名不允许用来操作该数据库. 报"用户、组或角色'XXX'在当前数据库中已存在 错误:15023"的错.

新建一个查询:
Use ABC
go
sp_change_users_login ‘update_one’, ‘xxx’, ‘xxx

解释一下参数:

ABC, 就不用说了, 想进行操作的数据库呗

update_one, 表示只对一个用户进行操作

xxxxxx, 则分别是SQL Server的登录名与数据库中的用户名

4.当MUST_CHANGE为ON(开)时,不能将CHECK_POLICY和CHECK_EXPIRATIION选项设为OFF(关),错误15128
解决办法:得用

ALTER LOGIN 登录名 WITH PASSWORD='新密码';

先修改一下这个帐号的密码才行!

抱歉!评论已关闭.