添加链接服务器时正常,但使用分布式查询时候报"sa登录失败!

一般等价物(污妖王) 2014-08-06 10:58:00
使用sp_addlinkedserver、sp_addlinkedsrvlogin添加链接服务器时正常,但使用分布式查询时候报"sa登录失败!",目标数据库用sa账号能正常登录,求高人帮忙!!


...全文
435 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢两位大神!
發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' [ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ] [ , [ @locallogin = ] 'locallogin' ] [ , [ @rmtuser = ] 'rmtuser' ] [ , [ @rmtpassword = ] 'rmtpassword' ] A value of TRUE specifies that logins use their own credentials to connect to rmtsrvname, with the rmtuser and rmtpassword arguments being ignored. FALSE specifies that the rmtuser and rmtpassword arguments are used to connect to rmtsrvname for the specified locallogin. If rmtuser and rmtpassword are also set to NULL, no login or password is used to connect to the linked server.
  • 打赏
  • 举报
回复
问题找到了。 exec sp_addlinkedsrvlogin 'ITSV ', 'false',null, '用户名 ', '密码 ' 这个地方我用的是true 。 有什么区别呢?求解释?
發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
你试一下用SSMS来实现看看能不能行,先别考虑用前端语言
  • 打赏
  • 举报
回复
引用 11 楼 chz415767975 的回复:
目标数据库用sa账号能正常登录,与云平台没什么关系 我总感觉是你创建链接服务器的时候密码没输对,你在创建试试。 --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名
密码保证没错,我都是复制粘贴的,而且建立链接服务器的时候都正常的。
霜寒月冷 2014-08-06
  • 打赏
  • 举报
回复
目标数据库用sa账号能正常登录,与云平台没什么关系 我总感觉是你创建链接服务器的时候密码没输对,你在创建试试。 --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名
發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
云平台可能会在网络层限制了访问
  • 打赏
  • 举报
回复
有点忘了说了,这跟云平台可有啥关系?客户搭建了个云平台测试环境,数据库是其中一个服务器
  • 打赏
  • 举报
回复
因为这是客户要求的,YingSheName_500011这就是个TextBox,值就是MiddleDB67等
發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
YingSheName_500011 这个是什么东西?链接服务器预设就可以拉,你这是想动态设定?
發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
为什么这些功能还要用编程语言来实现啊?
  • 打赏
  • 举报
回复

         protected void btnSave_Click(object sender, EventArgs e)
        {
            SqlParameter[] lsparam = 
            {
                new SqlParameter("@server",YingSheName_500011.Text.Trim()),
                new SqlParameter("@srvproduct",""),
                new SqlParameter("@provider","SQLNCLI"),
                new SqlParameter("@datasrc",ShuJuYuan_500011.Text.Trim())
            };

           
            ExecuteCommand("sp_addlinkedserver",lsparam);
           
            SqlParameter[] lsLoginParam = 
            {
                new SqlParameter("@rmtsrvname",YingSheName_500011.Text.Trim()),
                new SqlParameter("@useself","true"),
                new SqlParameter("@locallogin",null),
                new SqlParameter("@rmtuser",txtLoginID.Text.Trim()),
                new SqlParameter("@rmtpassword",txtPWD.Text.Trim())
            };

            ExecuteCommand("sp_addlinkedsrvlogin", lsLoginParam);
            
        }

        public static int ExecuteCommand(string procName,params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = Connection;
            cmd.CommandText = procName;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(values);
            int result = cmd.ExecuteNonQuery();
            Connection.Close();
            return result;
        }

發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
你的添加方式是脚本还是图形化?脚本的话贴出来看看,密码可以屏蔽
  • 打赏
  • 举报
回复
引用 2 楼 DBA_Huangzj 的回复:
[MiddleDB67-2]改为[MiddleDB67-3]或者[MiddleDB67]试试
都试了,没用....
發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
[MiddleDB67-2]改为[MiddleDB67-3]或者[MiddleDB67]试试
發糞塗牆 2014-08-06
  • 打赏
  • 举报
回复
同一个ip有三个name,是不是你连错实例了?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧