SQL SERVER 附加数据库时出现:ERROR 5123

合集下载

用户、组或角色 在当前数据库中已存在

用户、组或角色 在当前数据库中已存在

用户、组或角色'zgb' 在当前数据库中已存在。

(Microsoft SQL Server,错误: 15023)在使用SQL Server 2000时,我们经常会遇到一个情况:需要把一台服务器上的数据库转移到另外一台服务器上。

而转移完成后,需要给一个"登录"关联一个"用户"时,往往会发生错误:“错误15023:当前数据库中已存在用户或角色”这个问题非常棘手,几经排常找到了原因与解决方法,因为这个问题与解决方法均比较复杂,所以把这个过程中的一些经验纪录下来与大家分享,希望能对大家以后的类似操作有所帮助。

原因及解决办法如下:首先介绍一下sql server中“登录”与“用户”的区别,“登录”用于用户身份验证,而数据库“用户”帐户用于数据库访问和权限验证。

登录通过安全识别符(SID) 与用户关联。

将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户。

这种情况被称为存在“孤立用户”。

此时是不能通过新建登录或者是对同名登录授予对应数据库的“用户”权限来解决登录问题,因为SQL Server会报出“错误15023:当前数据库中已存在用户或角色”,为了解决这个问题,需要调用系统存储过程sp_change_users_login,具体用法如下:Use netzsgosp_change_users_login 'update_one', 'yjsy312', 'yjsy312'其中netzs为存在孤立用户的数据库,update_one是存储过程的参数,表示只处理一个用户,前一个yjsy312是“用户”,后一个yjsy312是“登录”,以上这个SQL 表示将服务器登录“yjsy312”与netzs 数据库用户“yjsy312”重新连接起来。

这样就可以正常使用数据库了。

SQL_Server数据库连接失败错误及解决方法

SQL_Server数据库连接失败错误及解决方法

SQL Server数据库连接失败错误及解决方法在使用SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。

一般而言,有以下两种连接SQL Server 的方式,一是利用SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用ODBC 或者OLE DB 等连接SQL Server。

下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。

一、客户端工具连接失败在使用SQL Server 自带的客户端工具(以企业管理器为例)连接SQL Server时,最常见的错误有如下一些:1、SQL Server 不存在或访问被拒绝ConnectionOpen (Connect())2、用户'sa'登录失败。

原因:未与信任SQL Server 连接相关联。

3、超时已过期。

下面我们依次介绍如何来解决这三个最常见的连接错误。

第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。

一般说来,有以下几种可能性:1、SQL Server名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。

要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。

首先,检查网络物理连接:ping <服务器IP地址>或者ping <服务器名称>如果ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。

还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。

防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。

sqlserver附加数据库错误823的解决方案

sqlserver附加数据库错误823的解决方案

单位一台单机刷卡的机器,sql2000数据库,数据库名后面有“(置疑)”字样,程序无法使用。

从网上搜到方法:解决办法:在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。

不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:第一、exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE第二、update sysdatabases set status=32768 where name='数据库名'第三、DBCC REBUILD_LOG ('数据库名','D:\database\Test_Log.LDF')--这个没执行成功!!第四、update sysdatabases set status=0 where name='数据库名'第五、restore database 数据库名WITH RECOVERY第六、exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE按照此方法操作,应该能修复数据库正常访问了。

如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。

============================================================补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。

SQLServer数据库错误5123解决方案

SQLServer数据库错误5123解决方案

SQLServer数据库错误5123解决⽅案因为⾃⼰有⼀本基于SQL Server 2005的数据库教程,⾥边使⽤的⽰例数据库是AdventureWorks for SQL Server 2005,⽽我的机⼦上装的是SQL Server 2008,⽰例数据库是AdventureWorks for SQL Server 2008。

起初我以为⽰例数据库AdventureWorks for SQL Server 2005 与AdventureWorks for SQL Server 2008 数据库结构应该差不多,可是在练习的过程中,我发现两个数据库中很多表的结构还是有很多不⼀样的地⽅。

于是决定到微软下载中⼼将⽰例数据库AdventureWorks for SQL Server 2005下过来,附加到SQL Server 2008上,以便顺利进⾏练习。

我以SQL Server 2008的超级管理员账户“sa”连接登录到实例SQLSERVER2008:在附加⽰例数据库AdventureWorks for SQL Server 2005时,弹出了下图这个错误:仔细看了⼀下主要信息“尝试打开或创建物理⽂件......时,CREATE FILE遇到操作系统错误 5(拒绝访问。

)”,⼀看就知道应当是对要附加的数据⽂件的操作权限不够。

按⼀般的思维习惯,我们会对操作权限不够的⽂件授予⾜够的操作权限。

⽐如,有⽹友说“给要附加的数据⽂件和相应的⽇志⽂件授予Everyone的权限”,授权过程如下三张截图所⽰(注意数据⽂件和⽇志⽂件都必须授权):(图1:授权数据⽂件)(图2:数据⽂件授权后)(图3:⽇志⽂件授权后)对要附加的数据⽂件和⽇志⽂件分别授予Everyone【读取和执⾏】、【读取】的权限后,在SQL Server 2008中重新尝试附加数据库,发现可以附加成功了!是不是问题就这样解决了呢?这样⼦做对吗?如果在真实的数据库管理过程中,我们把数据⽂件、⽇志⽂件的权限放⼤到Everyone,那肯定是不对的做法。

SQLSERVER错误号,SQLSERVER错误代码

SQLSERVER错误号,SQLSERVER错误代码

SQLSERVER错误号,SQLSERVER错误代码SQLSTATE SQL SERVER 驱动程序错误描述HY000所有绑定列都是只读的。

必须是可升级的列,以使⽤ SQLSetPos 或 SQLBulkOperations 更改或插⼊⾏。

HY000已检测到⼀个旧netlib (%s)。

请删除并重新启动应⽤程序。

正在装载的 netlib 已过期。

驱动程序请求⼀个较新的 netlib。

问题可能出在应⽤程序当前⽬录中的 netlib,正在装载的是这个netlib,⽽不是系统⽬录中的那个。

也可能是该 netlib 安装不当或已损坏。

如果错误⽂本中所指定的 netlib 存在于 Windows 系统⽬录外的其它地⽅,请将其删除。

如果 netlib 只存在于系统⽬录中,在客户端安装客户实⽤⼯具,然后重新启动应⽤程序。

HY000尝试将 NULL 值⼤容量复制到不接受NULL 值的 Server 列中。

字段包含 NULL 值,但列不允许 NULL 值。

HY000尝试将过⼤的列⼤容量复制到 SQLServer。

为列提供的长度⼤于表中的列定义。

HY000尝试读取 BCP 格式⽂件的未知版本。

bcp 格式⽂件中的标题⾏采⽤了不可识别的版本。

HY000错误的⼤容量复制⽅向。

必须是 IN 或者OUT。

bcp_init 调⽤没有为 eDirection 参数指定有效的⽅向。

HY000错误的终⽌符。

bcp_bind 中提供的终⽌符字符串⽆效。

HY000Bcp 主⽂件必须⾄少包含⼀列。

未选定任何要装载的列。

HY000⽆法⽣成 SSPI 上下⽂。

驱动程序⽆法获得集成安全性所要求的 SSPI 上下⽂。

本机错误将包含该 Win32 错误代码。

HY000⽆法初始化 SSPI包。

驱动程序⽆法获得集成安全性所要求的 SSPI 上下⽂。

本机错误将包含该 Win32 错误代码。

HY000通讯模块⽆效。

未正确安装驱动程序。

⽹络库 .dll 已损坏。

Server连接失败错误及解决

Server连接失败错误及解决

小结SQL Server连接失败错误及解决在使用SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。

一般而言,有以下两种连接SQL Server 的方式,一是利用SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用ODBC 或者OLE DB 等连接SQL Server。

一、客户端工具连接失败在使用SQL Server 自带的客户端工具(以企业管理器为例)连接SQL Server时,1、SQL Server 不存在或访问被拒绝ConnectionOpen (Connect())2、用户'sa'登录失败。

原因:未与信任SQL Server 连接相关联。

3、超时已过期。

下面我们依次介绍如何来解决这三个最常见的连接错误。

第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。

一般说来,有以下几种可能性:1、SQL Server名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。

要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。

首先,检查网络物理连接:ping <服务器IP地址>或者ping <服务器名称>如果ping <服务器IP地址>失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。

还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。

防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。

如果ping <服务器IP地址>成功而ping <服务器名称>失败,则说明名字解析有问题,这时候要检查DNS 服务是否正常。

sqlserver中的错误信息错误1-999

sqlserver中的错误信息错误1-999展开全文sql server中的错误信息错误 1 -999错误严重度描述(消息文本)1 10 上次升级的版本日期: 10/11/90.21 10 警告:严重错误 %1! 发生于 %2!。

请记下错误和时间,然后与系统管理员联系。

102 15 在 ''%1!'' 附近有语法错误。

103 15 以 ''%2!'' 开头的 %1! 太长。

最大长度为 %4!。

104 15 如果语句中包含 UNION 运算符,那么 ORDER BY 子句中的项就必须出现在选择列表中。

105 15 字符串 ''%1!'' 之前有未闭合的引号。

106 16 查询中的表名太多。

允许的最大数目为 %1!。

107 15 列前缀 ''%1!'' 与查询中所用的表名或别名不匹配。

108 15 ORDER BY 子句中的位置号 %1! 超过了选择列表中项数目。

109 15 INSERT 语句中列的数目大于 VALUES 子句中指定的值的数目。

VALUES 子句中值的数目必须与 INSERT 语句中指定的列的数目匹配。

110 15 INSERT 语句中列的数目小于 VALUES 子句中指定的值的数目。

VALUES 子句中值的数目必须与 INSERT 语句中指定的列的数目匹配。

111 15 ''%1!'' 必须是批查询中的第一条语句。

112 15 %1! 语句中不允许有变量。

113 15 缺少注释的结尾标记 '*/'。

114 15 对于将值赋给变量的语句,浏览模式无效。

116 15 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

117 15 %1! 名称 ''%2!'' 包含的前缀数目超过了最大值。

常见的SQLServer连接失败错误以及解决方法(2)

常见的SQLServer连接失败错误以及解决方法(2)常见的SQLServer连接失败错误以及解决方法具体设置如下:manage管理器->windows authentication(第一次用windows 方式进去),->对象资源管理器中选择你的数据服务器--右键>属性>security>sqlserver and windows authentication方式同时选中.2:设置一个sql server方式的用户名和密码,具体设置如下:manage管理器->windows authentication>new query>sp_password null,'sa123456','sa' 这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用sql server方式, 用户名为sa ,密码为:sa123456的用户进数据库了.3:用ssms运行的 sp_password null,'sa123456','sa' 然后重新启动sql;c--连接超时如果遇到这样的错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。

这种情况比较少见,一般发生在当用户在internet上运行企业管理器来注册另外一台同样在internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。

有些情况下,由于局域网的网络问题,也会导致这样的错误。

要解决这样的错误,可以修改客户端的连接超时设置。

默认情况下,通过企业管理器注册另外一台sql server的超时设置是4 秒,而查询分析器是 15 秒。

具体步骤为:企业管理器中的设置:1、在企业管理器中,选择菜单上的"工具",再选择"选项";2、在弹出的"sql server企业管理器属性"窗口中,点击"高级"选项卡;3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。

SA无法附加数据库


2、打开SlServer 2005 ,在只读的数据库上右击选择属性,选中属性窗口左边&uot;选择页&uot;下面的&uot;选项&uot;,在窗口右边将“数据库为只读”改为f
。操作系统错误 5:&uot;5(拒ver,错误: 5120)
1 所有有程序-SL Server 2005-配置工具-&uot;SL Server Configuration Manager&uot;,点击&uot;SL Server 2005 服务&uot;,右边会显示出用户,右击你的用户(如sa)属性,内置帐户选择&uot;Local System&uot;,点击重新启动就OK了
2 附加后发现数据库属性为只读 解决方法为:
1、打开 开始→程序→Microsoft SL Server 2005→配置工具→SL Server 配置管理器, 打开SL Server SLEXPRESS 的属性.在内置帐号处,把“网络服务”改成“本地系统”,重新启动SL Server 2005 Express 后,再附加数据库一切正常。

SQL 2005的创建数据库操作系统错误的问题

SQL 2005的创建数据库操作系统错误的问题create database bj_jfon(name='bj_jf',filename='E:\jingfeng\bj_jf_data.mdf',size=10,filegrowth=20%)log on(name='bj_jf_log',filename='E:\jingfeng\bj_jf_log.ldf',size=3,maxsize=20,filegrowth=10%)但是他会报错:消息1802,级别16,状态4,第 1 行CREATE DATABASE 失败。

无法创建列出的某些文件名。

请查看相关错误。

消息5123,级别16,状态1,第 1 行尝试打开或创建物理文件'E:\jingfeng\bj_jf_data.mdf' 时,CREATE FILE 遇到操作系统错误5(拒绝访问。

)。

但是他会报错:消息1802,级别16,状态4,第 1 行CREATE DATABASE 失败。

无法创建列出的某些文件名。

请查看相关错误。

消息5123,级别16,状态1,第 1 行尝试打开或创建物理文件'E:\jingfeng\bj_jf_data.mdf' 时,CREATE FILE 遇到操作系统错误5(拒绝访问。

)。

解答:方法一:这是因为SQL Server的启动帐户(一般是system或某个操作系统管理员),对E盘根目录没有创建文件的权限。

右击E盘,在属性里查看“安全”选项卡里查看用户的权限。

查看启动帐户是谁,运行services.msc,在服务管理器里找到SQL Server服务,然后看“登录”选项卡。

方法二:打开sql 2005 configuration manager ,双击sql 服务器,打开sql服务器的属性,在内置帐户中选择本地系统。

(一般可以解决此问题)最后,重新启动服务器,就ok了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档