⑴ 怎麼打開sql server阻止了對組件ad hoc
用08R2可以:
SQL code
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
/*
Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.
Configuration option 'Ad Hoc Distributed Queries' changed from 0 to 1. Run the RECONFIGURE statement to install.
*/
SELECT @@version
/*
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
*/
⑵ 怎樣啟用Ad Hoc Distributed Queries求答案
1、啟用Ad Hoc Distributed Queries的方法 SQL Server 阻止了對組件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource'的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用。sp_configure 啟用 'Ad Hoc Distributed Queries'。 啟用Ad Hoc Distributed Queries的方法,執行下面的查詢語句就可以了: 1. exec sp_configure 'show advanced options',12. 3. reconfigure4. 5. exec sp_configure 'Ad Hoc Distributed Queries',16. 7. reconfigure8. 使用完畢後,記得一定要關閉它,因為這是一個安全隱患,切記執行下面的SQL語句: 1. exec sp_configure 'Ad Hoc Distributed Queries',02. 3. reconfigure4. 5. exec sp_configure 'show advanced options',06. 7. reconfigure8. 2、使用示例 創建鏈接伺服器 1. exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '遠程伺服器名或ip地址 '2. 3. exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用戶名 ', '密碼 '4. 查詢示例 1. select * from ITSV.資料庫名.dbo.表名2. 導入示例 1. select * into 表 from ITSV.資料庫名.dbo.表名2. 以後不再使用時刪除鏈接伺服器 1. exec sp_dropserver 'ITSV ', 'droplogins '2. 3、連接遠程/區域網數據(openrowset/openquery/opendatasource) 1、openrowset 查詢示例 1. select * from openrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼 ',資料庫名.dbo.表名)2. 生成本地表 1. select * into 表 from openrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼 ',資料庫名.dbo.表名)2. 把本地表導入遠程表 1. insert openrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼 ',資料庫名.dbo.表名)2. 3. select *from 本地表4. 更新本地表 1. update b2. 3. set b.列A=a.列A4. 5. from openrowset( 'SQLOLEDB ', 'sql伺服器名 '; '用戶名 '; '密碼 ',資料庫名.dbo.表名)as a inner join 本地表 b6. 7. on a.column1=b.column18. openquery用法需要創建一個連接。 首先創建一個連接創建鏈接伺服器 1. exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '遠程伺服器名或ip地址 '2. 查詢 1. select * FROM openquery(ITSV, 'SELECT * FROM 資料庫.dbo.表名 ')2. 把本地表導入遠程表 1. insert openquery(ITSV, 'SELECT * FROM 資料庫.dbo.表名 ')2. 3. select * from 本地表4. 更新本地表 1. update b2. 3. set b.列B=a.列B4. 5. FROM openquery(ITSV, 'SELECT * FROM 資料庫.dbo.表名 ') as a6. 7. inner join 本地表 b on a.列A=b.列A8. 2、opendatasource/openrowset 1. SELECT * FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陸名;Password=密碼 ' ).test.dbo.roy_ta2. 把本地表導入遠程表: 1. insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陸名;Password=密碼 ').資料庫.dbo.表名2. 3. select * from 本地表4. 關於SQL Server資料庫中使用T-SQL語句訪問遠程資料庫的操作就介紹到這里了,希望本次的介紹能夠對您有所收獲! 作者:不詳 來源:網路
⑶ SQL代理無法啟動怎麼辦
【處理方法】
一、配置環境
伺服器環境為32位Intel® Xeon® CPU E54410 @2.33GHz雙路雙核開啟超線程,8.00GB的內存,RAID10。
1.根據最小許可權原則,安裝完資料庫及SP3補丁後,建立Users組用戶SqlStartUser。
2.通過SQL Server配置管理器配置啟用TCP/IP協議,IPALL的TCP埠改為32959。SQL Server(MSSQLSERVER)和SQL Server Agent(MSSQLSERVER)的服務啟動賬號為SqlStartUser。
3.本地安全設置->本地策略->用戶許可權分配->內存中鎖定頁面添加SqlStartUser。
4.勾選使用AWE分配內存。最小伺服器內存(MB)5500,最大伺服器內存(MB)7200,其他留給操作系統。
二、檢查步驟
1.檢查本地賬號SqlStartUser隸屬於哪幾個組:本地Windows組之Users組;本地Windows組之SQL Server服務賬戶組SQLServer2005MSSQLUser$DBSRV1$MSSQLSERVER;本地Windows組之SQL Server服務賬戶組SQLServer2005SQLAgentUser$DBSRV1$MSSQLSERVER。
2.檢查資料庫登錄名是否有DBSRV1SqlStartUser。
3.檢查事件查看器應用程序有關服務啟動的過程信息。
三、類型來源 描述
①審核成功MSSQLSERVER用戶 'DBSRV1 SqlStartUser' 登錄成功。連接: trusted. [客戶端: <local machine>]
②信息MSSQLSERVER配置選項 'show advanced options' 已從 1 更改為 1。請運行 RECONFIGURE 語句進行安裝。
③信息MSSQLSERVERSQL Server 阻止了對組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_has_server_access' 的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'Agent XPs'。有關啟用 'Agent XPs' 的詳細信息,請參閱 SQL Server 聯機叢書中的 "外圍應用配置器"。
④信息MSSQLSERVERSQL Server 阻止了對組件 'Agent XPs' 的 過程'dbo.sp_sqlagent_get_startup_info' 的訪問......
⑤錯誤MSSQLSERVERSQLServerAgent could not be started (reason: SQLServerAgent 必須能夠以 SysAdmin 身份連接到 SQLServer,但「(未知)」不是 SysAdmin 角色的成員)。
⑷ 如何設置sqlserver2008訪問次數
一、跨資料庫訪問
第一種方式
SELECT * FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=遠程ip;User ID=sa;Password=密碼'
).庫名.dbo.表名
WHERE 條件
第二種方式
在sql server組->服務->安全性->鏈接伺服器下建立一個具有別名的鏈接伺服器。然後通過以下方式訪問:
SELECT * FROM [鏈接伺服器名].庫名.dbo.表名
WHERE 條件
需要注意的是建立鏈接資料庫伺服器類型如果選擇「SQL server」,那麼鏈接伺服器名稱必須用要鏈接的伺服器的在網路中的行猜機器名或IP,如果要使用其它別名,可以在WINDOWS\system32\drivers\etc\hosts文件里添加一個別名的映射。
解除SQL阻止(sqlserver 2005情況)
SQL Server 阻止了對組件 『Ad Hoc Distributed Queries』 的 STATEMENT』OpenRowset/OpenDatasource』 的訪問,因為此組件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 『Ad Hoc Distributed Queries』。有關啟用 『Ad Hoc Distributed Queries』 的詳細信息,請參閱 SQL Server 聯機叢書中的 「外圍應用配置器」。
因為SQL2005默認是沒有開啟』Ad Hoc Distributed Queries』 組件,開啟方法如下
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
關閉Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries', 0
reconfigure
exec sp_configure 'show advanced options', 0
reconfigure
二、分布式事務的配置
1.用DTCPing.exe工具測試兩台機器的DTC服務是否可以聯通。
2.如果有問題檢查MSDTC服務是否啟動。
3.MSDTC依賴於RPC,RPC使用的埠是135,測試135埠是否打開.是否有防火牆?如果有先關了防火牆. telnet IP 135 如果是關閉的打開它.
4.打開「控制面板->鋒碰管理工具->組件服務」,然後展開「組件服務->計算機->我的電腦」右鍵屬性。銀帶談選擇MSDTC的Tab欄,點擊安全性配置按鈕,打開窗口,將「網路DTC訪問」選項選中,並將「允許遠程客戶端」,「允許入站」,「允許出站」都選中,並選擇「不要求進行驗證」,「啟用事務Internet協議(TIP)事務」,「啟用XA事務」都選中。然後確定即可。(以上選項windows默認不開放,必須配置)
5.檢查你的兩台伺服器是否在同一個域中. 如果不在同一個域中,是否建立可信任聯接.
6.如果是WIN2000,升級到SP4
7.確認MDAC版本是2.6以上,最好是2.8.
8.在SQL server存儲過程中使用分布式事務時,必須SET XACT_ABORT ON --設置分布式事務如果發生問題主動回滾操作
9.可以聲明使用BEGIN DISTRIBUTED TRANSACTION,如果未明確生明,在事務塊中包含鏈接伺服器的訪問,SQL server會自動升級成分布式事務。
⑸ SQL代理無法啟動
對於伺服器上數據的備份工作是網管員日常工作中最重要的工作之一,SQLServerAgent服務使得我們可以用SQL上的「資料庫維護計劃」功能來自動備份數據,但最近我發現伺服器上SQLServerAgent服務無法啟動了,回想最近所做的操作,原來是因為我把SQL中Builtin/Administrators這個帳號的伺服器訪問許可權禁止掉了,因為這個帳號的存在對於SQL來說很不安全,但又不想刪除,因此把它的許可權禁止,結果導致SQLServerAgent服務無法啟動。
解決的方法很簡單,只要刪除這個帳號,再建一個同時具有系統管理許可權和SQL管理許可權的用戶,然後用這個用戶去啟動SQLServerAgent服務就可以了。以下是操作步驟:
1、打開企業管理器,打開左邊的實例->安全性->登錄,在右邊空白處右擊滑鼠,選「新建登錄」,單擊「名稱:」右邊的按鈕,會出現很多帳號名,選擇一個具有windows超級管理員許可權的用戶(如Administrator),單擊「添加」,再在「伺服器角色」標簽中選中「System Administrators」打勾,確定。
2、打開企業管理器左邊的「管理」,右擊「SQLServer代理」,選屬性->常規->服務啟動帳戶,選「本帳戶」,然後在旁邊輸入剛才所建的帳戶和密碼(例如:.\Administrator),密碼是此用戶的密碼,確定。
3、最後,右擊「SQLServer代理」,選「啟動」,就能看到Agent成功啟動了。
⑹ 如何將ACCESS資料庫導入到SQLSERVER
A1. 安裝 SQLServer
A2. 建立 SQLServer 資料庫
在sqlserver資料庫的「企業管理器」中新建一個資料庫,命名為sample,建好後在sqlserver安裝目錄\MSSQL\Data
文件夾下會生成sample_Data.MDF、sample_Log.LDF兩個文件
具體步驟:依次展開sql server 組 ==》右擊資料庫==》新建資料庫==》命名sample==》確定
A3. 導入表結構
a. 建立表結構腳本 –
執行SqlSvrTbl.bat從sample.mdb抽取表結構,sample.mdb一定是當前型號的資料庫,即執行makemdb、getmdb後獲取的,
註:SqlSvrTbl.bat可以在任意目錄執行,執行時會出現如下信息(此報錯信息可以忽略,該命令執行時間比較長):
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 不能讀取記錄;
在 'MSysQueries' 上沒有讀取數據許可權。
at
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6026)
……
b. 讀入表結構腳本
在sqlserver資料庫的「查詢分析器」界面中讀入上一步生成的SqlSvrTbl.sql腳本,生成資料庫結構
具體步驟:打開上一步生成的SqlSvrTbl.sql腳本===》點擊工具欄的「執行查詢」按鈕(或 按F5 執行)
注意:類似警告信息可忽略,錯誤要查明原因。
警告: 已創建表 'Department',但其最大行大小(17573)超過了每行的最大位元組數(8060)。如果結果行長度超過 8060
位元組,則此表中行的 INSERT 或 UPDATE 將失敗。
A4. 導入數據
使用sqlserver的「導入和導出數據」功能,按步驟將access資料庫中的數據導入到sqlserver資料庫的sample資料庫中
具體步驟:運行「導入導出數據」工具==》下一步 ==》選擇 數據源:Microsoft
Access
==》在「文件名」處,瀏覽打開需要導入的數據源 sample.mdb ==》下一步
==》選擇目的資料庫:在「資料庫」下拉列表中選擇之前建好的sample
==》一直「下一步」 到「選擇源表和視圖」將所有要導入的表和視圖
「勾選」 執行「下一步」 ==》點「下一步」==》點「完成」開始導入
注意:如果在導入完成後報如下錯誤提示,說明導入有錯
錯誤提示:
在目的的行號為1處出錯.到目前為止,在改任務中遇到錯誤數:1.
插入錯誤、列58("Birthday",DBTYPE_DBTIMESTAMP)、狀態6:數據溢出。
對於造型說明無效的字元值。
A5. NHS 伺服器連接資料庫
a. 將nhssystem.mdb 手工拷到本機的%JXCRUN%\Bin文件夾中
b.用客戶端登錄軟體。
如果出現「admin」用戶不存在,在sqlserver中用查詢管理器查詢「select * from sysuser 」
看結果跟access中資料庫中sysuser中數據是否匹配。如果不匹配說明資料庫有誤,需要更換資料庫。
如果出現sa用戶密碼錯誤,沒有連接上,先關掉軟體。在sqlserver企業管理器中,打開「安全性」==》「登錄」==》右擊sa更改密碼即可。
在沒有插網線的情況下,如果出現「不能連接SqlServer 或SqlServer
拒絕連接」的錯誤,將網線插上試試看是否可以。如果還不行,查看SqlServer是否啟動。
⑺ 你好,我想問您一個問題,我在使用SQL Server 2008 R2運行存儲過程發送郵件的時候遇到了下面的錯誤。
這個是伺服器配置的問題:
你自己網路搜下: SQL Server 阻止了對組件 'Database Mail XPs' 的 過程 'dbo.sp_send_dbmail' 的訪問
這里不方便發URL。按教程進行配置