SQL Server 2008資料庫分布式查詢知識

2022-09-21 00:48:10 字數 2078 閱讀 8921

在接觸公司乙個系統時,公司使用的是sql server 2008資料庫,裡面涉及到了多個資料庫之間的查詢,而且資料庫bfsyyne是分布式的,資料庫分布在多台伺服器之間,並且各個資料庫各盡其責,負責存放不同模組功能的資料。這裡面就要涉及到了資料庫的分布式查詢。

補www.cppcns.com充一下分布式查詢的知識:

分布式查詢從多異類資料來源中訪問資料。這些資料來源可以儲存在同一臺計算機或不同的計算機上。microsoft sql server 通過使用 ole db 來支援分布式查詢。

sql server 使用者可以使用分布式查詢訪問以下內容:

ole db 訪問介面將在稱為行集的**格式物件中公開資料。sql server 允許在 transact-sql 語句中像引用 sql server 表一樣引用 ole db 訪問介面中的行集。

外部資料來源中的表和檢視可以在 select、insert、update 和 delete transact-sql 語句中直接引用。因為分布式查詢使用 ole db 作為基本介面,因此它們不僅可以訪問帶有 sql 查詢處理器的傳統 dbms 系統,www.cppcns.com也可以訪問複雜的、具有不同功能的資料來源所管理的資料。只要擁有資料的軟體通過 ole db 訪問介面在**格式行集中公開其資料,就可在分布式查詢中使用此資料

因為公司的業務要經常使用不同伺服器上的資料庫,所以公司的資料庫都建立了一堆的鏈結伺服器。通過建立這些鏈結伺服器,就可以使用這些鏈結伺服器的別名來簡化sql語句的編寫和sql開銷;

使用sql server 2008管理程式設計客棧工具可以直接介面化的新增鏈結伺服器;這裡給出使用sql語句,利用系統儲存過程來新增鏈結伺服器的方法,這裡要用到兩個儲存過程:

sp_addlinkedserver

sp_addlinkedsrvlogin

乙個是新增鏈結伺服器,乙個是新增鏈結伺服器連線登陸驗證;具體此兩個儲存過程引數含義,請參考微軟手冊;注意,執行此儲存過程登陸的使用者必須要有sysadmin許可權才能執行;

假設現在在10.155.25.100 上的db中要使用10.155.24.101上乙個 fliedb01表中的資訊;則在10.155.25.100上進行如下sql 語句:

exec sp_addlinkedserver

@server='szdb01', --要新增的連線伺服器的別名

@srvproduct='',

@provider='sqloledb',--指定通過sqlobfsyyneledb鏈結

@datasrc='10.155.24.101'--db位址

exec sp_addlinkedsrvlogin

'szdb01',--連線伺服器的別名

'false',

null,

'szuser',--登陸使用者名稱

'password@123'--登陸密碼

--執行完之後就可以寫這樣的查詢語句了

select * from openquery([szdb01],'select file_no,file_name from filedb01.dbo.getfilelist()') as tablea --這裡的dzdb01就是上面新增的連線伺服器的別名

有多個就新增多個連線伺服器;這是其中的一種;

還有一種就是使用opendatasource,這是sql的乙個函式,其能夠開啟指定的db,而且這個函式的執行許可權很低,技術手冊中說任何人都可以執行此函式;這個函式也是hacker常用的資料爆表的乙個手段;目前檢視sql server 2008的手冊中,其說明還是說所有人都有許可權執行;

這個函式只能是不常用的查詢中會用到;

舉乙個簡單的例子:

select * from opendatasource('sqloledb','data source=10.155.24.100;user id="szuser";password="password@123"') as tablea

這個也是對上面的一種實現;

opendatasource還可以直接開啟mdb這類檔案。這種我就沒有去試驗了,技術從書中有說明;

select * from opendatasource('microsoft.jet.oledb.4.0','data source="d:/abcd.mdb"')

總結

php連線sql server 2008資料庫

原文 php連線sql server 2008資料庫 關於php連線sql server 2008的問題,2000的版本可以直接通過php中的配置檔案修改,2005以上的版本就不行了,需要使用微軟公司提供的驅動 sql server driver for php php pdo sqlsrv 52 ...

php連線sql server 2008資料庫

原文 php連線sql server 2008資料庫 關於php連線sql server 2008的問題,2000的版本可以直接通過php中的配置檔案修改,2005以上的版本就不行了,需要使用微軟公司提供的驅動 sql server driver for php php pdo sqlsrv 52 ...

SQL Server 2008 透明資料加密入門

問題 在檢討 sql server 2008 中的新功能,時,我們注意到透明資料加密。這聽起來很有趣。您可以為我們提供解釋和執行它的詳細資訊嗎?解決方案 時延估計是 sql server 2008 中的新功能,它提供了實時加密的資料和日誌檔案。資料加密之前寫到磁碟 資料進行解密時從磁碟中讀取。時延估...