日期:2014-05-19  浏览次数:20540 次

在线等,请教sql 2000中的跨数据库所有权链接的问题
从网上找了一篇有关这方面的资料,网址是:http://hi.baidu.com/chentao/blog/item/001e4fc2c1056434e5dd3bd3.html
但还是提示用户没有在当前数据库中存在,不知道该如何解决

------解决方案--------------------
给出示例环境
------解决方案--------------------
--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
'ai_mssql ',
--产品名称
'ms ',
--OLE DB 字符
'SQLOLEDB ',
--数据源
'218.204.111.111,3342 '
GO


--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
'ai_mssql ',
'false ',
NULL,
--远程服务器的登陆用户名
'zhangzhe ',
--远程服务器的登陆密码
'fish2231 '
go


--查询数据
select * from ai_mssql.pubs.dbo.jobs
go

------解决方案--------------------
注意用户的对应.
------解决方案--------------------
“跨数据库所有权链接”并不是像你这样用的。它的意思是说:
在进行跨服务器访问对象时,如果开启了“跨数据库所有权链”,对于同一个所有者的对象,不在被调用对象的数据库中检查调用者的权限!(只在调用对象的数据库中检查调用者对该对象的权限)

下面一段是COPY联机帮助的:
================================================================
例如,如果在数据库 A 和数据库 B 之间启用了跨数据库所有权链接,则任一数据库的 db_owner 固定数据库角色的成员都可以访问另一数据库。过程很简单:Diane(数据库 A 中 db_owner 角色的成员)在数据库 A 中创建了用户 Stuart。Stuart 已经作为用户存在于数据库 B 中。然后 Diane 在数据库 A 中创建一个对象(由 Stuart 所拥有),该对象调用数据库 B 中 Stuart 所拥有的任何对象。因为调用对象和被调用对象的所有者相同,所以当 Diane 通过她创建的对象访问数据库 B 中的对象时,不会检查她对该对象的权限。