当前位置: 代码迷 >> Sql Server >> 请教一个数据库中的实例有多个数据库,数据库可以相应对应不同的服务器不?
  详细解决方案

请教一个数据库中的实例有多个数据库,数据库可以相应对应不同的服务器不?

热度:84   发布时间:2016-04-24 18:35:17.0
请问一个数据库中的实例有多个数据库,数据库可以相应对应不同的服务器不??
   比如我的一个数据库实例下面有QPAccountsDB、QPGameMatchDB、QPGameScoreDB三个数据库,可以有QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器不,如果有,怎么样设置相应的服务器。还有存储过程被加锁了,怎么解开呢???



------解决方案--------------------
link server貌似是实例级别的,具体的库要独立授权,你三个库都在一个实例上的话一个link server就够了,当然搞3个也不抱错。

还有存储过程被加锁了,怎么解开呢???
加锁是指解密?如果是,网上可能有一些手段,不过不保证能完全解密
------解决方案--------------------
存储过程被加锁了

这个是怎么了
------解决方案--------------------
QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器

你的意思是建立3个连接服务器吗,这个是可以的
------解决方案--------------------
引用:
Quote: 引用:

link server貌似是实例级别的,具体的库要独立授权,你三个库都在一个实例上的话一个link server就够了,当然搞3个也不抱错。

还有存储过程被加锁了,怎么解开呢???
加锁是指解密?如果是,网上可能有一些手段,不过不保证能完全解密

就是他们打存储过程就加了一些加密代码,
例如:
CREATE PROCEDURE [dbo].[usp_GetQueueOrder]
@StaffId VARCHAR(36),
@GroupId INT,
@QueueNO INT
WITH ENCRYPTION
 AS
SELECT 
COUNT(1)+1 NewOrder 
FROM  
Tbl_Queue 
WHERE
StaffId=@StaffId AND GroupId=@GroupId AND QueueNO<@QueueNO AND EndTime is null
GO
这怎么解开啊??


你想看到这个存储过程中的源码是把,这个好像没办法,你得问他们要源码。

我之前看到,如果是2000的系统,可以有代码能解密,可以获取源码的
------解决方案--------------------
引用:
Quote: 引用:

QPAccountsDBLink服务器、QPGameMatchDBLink服务器、QPGameScoreDBLink服务器

你的意思是建立3个连接服务器吗,这个是可以的


是啊,怎么添加啊!因为我用别人的服务器人家的sql语句都是加服务器+数据库,比如QPAccountsDBLink.QPAccountsDB.dbo.AccountsInfo这样的获取一个表。

类似QPAccountsDBLink这样的东西有多个而且有的写在存储过程里,但是那个存储过程都加锁了


建立连接服务器:

--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'QPAccountsDBLink',
                                   @srvproduct='ms', 
                                   @provider=N'SQLNCLI',                                    
                                   @datasrc=N'远程ip地址,端口'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'QPAccountsDBLink',
                                    @useself=N'False',
                                    @locallogin=NULL,
                                    @rmtuser=N'用户名',
                                    @rmtpassword='密码'
  
                                    
--查询远程表
select * 
from [QPAccountsDBLink].远程数据库名.dbo.表


------解决方案--------------------
引用:
Quote: 引用:

--建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'QPAccountsDBLink',
                                   @srvproduct='ms', 
                                   @provider=N'SQLNCLI',                                    
                                   @datasrc=N'远程ip地址,端口'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'QPAccountsDBLink',
  相关解决方案