相当牛X的技术问题,自认是高手的进来,想要多少分送多少分只要能解决.关于文件导入导入的,千万千万注意是DB_OWNER权限!!
各位朋友大家好,我遇到一个问题,就是我需要把一个ACCESS的数据库导入进MSSQL的一个表中.这个本身不难,但是我只有DB_OWNER权限,就使这件事变得相当难,
我使用 SELECT * into newtable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\databases.mdb';'admin';'', tables)
语句导入MDB库,提示错误
已拒绝对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序
表明DB_NWNER权限不行,同榇的语句我复制一次输入,这次是用的SA帐号测试,成功的导入了MDB库
现在我想请问一下,DB_OWNER权限下,究境有没有能将ACCESS库导入的方法,如果有是什么语句,请看清,是DB_OWNER权限下的
------解决方案--------------------
第一步:
用查询分析器登录你的目标服务器(假定服务器名称:dserver1,假定你有权限的数据库名为:dbname1)。
当然是用你哪个只有dbo权限的用户了(假定登录名称为:user1,登录密码为:password1)。
创建你需要存放数据的表格(假定表名:newtable1)。
第二步:
找一台你有sa权限的数据库服务器,这台服务器需要能够连上你的目标服务器dserver1。
用查询分析器登录该服务器,当然是用sa用户了。
执行以下代码:
SQL code
exec sp_addlinkedserver @server='aa', @srvproduct='',@provider='SQLOLEDB', @datasrc='dserver1'
exec sp_addlinkedsrvlogin 'aa','false','sa','user1','password1'
go
insert aa.dbname1.user1.newtable1
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\databases.mdb';'admin';'', table1)
select * from aa.dbname1.user1.newtable1
go
exec sp_droplinkedsrvlogin 'aa','sa'
exec sp_dropserver 'aa'