㈠ sql無法連接到服務區原因
1. 確保伺服器端的資料庫中存在sa,並支持混合登錄模式.默認安裝的時候,可能會忽略建立sa.
2. 確保伺服器端的資料庫是支持遠程調用的.打開SQL Server Management Studio,選擇該資料庫,右鍵菜單"Properties",在打開的對話框中選擇Connections,把Allow remote connections to this server選上.
3. 確保伺服器端的SQL服務的TCP/IP是Enable的.打開SQL Server Configuration Manager. 選擇SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安裝的SQL示例名為SQL2005), 把Named Pipes和TCP/IP都修改為Enabled,默認是Disabled.
4. 確保伺服器端的SQL實例的遠程調用是支持TIP/IP和named pipes的. 打開SQL Server Surface Area Configuration Manager,在打開的頁面中選擇Surface Area Configuration for Services and Connections.選中實例的Remote Connections,把Using both TCP/IP and named pipes選中.
5. 重啟伺服器端的SQL Server 2005服務,確保SQL Server Agent和SQL Server Browser的服務也啟動了. 默認都是需要手動啟動,可以改成Automatic.
6. 因為伺服器端的操作系統是WinXp+SP2,所以還需要檢查防火牆.確保防火牆中的1433埠打開了.
另外, SQL Server 2005的默認埠可能不是1433. 我們需要手動修改一下. 打開SQL Server Configuration Manager. 選擇SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安裝的SQL示例名為SQL2005), 查看TCP/IP的屬性.在打開的對話框中選擇IP Address, 把到IPAll下的TCP Dymanic Ports改為0,TCP Port的值修改為1433.
在Windows防火牆中的Exceptions中Add Port:TCP 1433和UDP 1434, 同時還需要Add Program.先打開SQL Server Configuration Manager,在SQL Server 2005 Services中選中SQL Server,查看屬性,在Advanced中記下Instance ID.如(MSSQL.1)
在防火牆的Exceptions中Add Program,找到諸如...\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe,添加.
所有這些都做完了,客戶端應該就可以訪問了,最好客戶端也在自己的Configration Manager的Client Configuration中設置TCP/IP為Enabled.
㈡ 如何確保我的SQL varchar欄位是獨一無二的
建表後可以增加約束
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... , column_n);
建表語句中可以增加欄位約束
create table table_name( column1 number not null, column2 number not null, column3 varchar2(50) not null, CONSTRAINT constraint_name UNIQUE (column3) --定義唯一性約束 );
㈢ Sql使用兩種賬號確保資料庫的安全性,分別是什麼和資料庫用戶
登錄帳號對於伺服器而言的,資料庫用戶是針對特定資料庫來講的。就相當於一個房間里放著很多保險櫃,你有房門鑰匙了,專必須得有每個保險櫃的鑰匙才能從保險櫃里取東西。登錄帳戶是房門鑰匙,資料庫用戶是保屬險櫃鑰匙。
㈣ SQL如何確保查詢結果的正確性
語法要熟練,寫的時候認真點,語法要牢記,就是套語法,多練就正確了!
㈤ 為什麼我的SQL安裝後是這個界面
缺少組件,可能是由於資料庫引擎沒有注冊成功。
建議覆蓋安裝一次,如果依然如此,
就要校驗一下你的資料庫安裝文件的SHA1,和微軟官方的值做對比,
如果不符,說明是沒人修改或者精簡過的,最好不要使用這樣的,不安全也不穩定。
㈥ sql 怎麼都連接不上伺服器
1、轉到[Microsoft SQL Server 2008]並找到[SQL Server配置管理器],單擊裡面。
㈦ SQL資料庫無法連接上伺服器,怎麼辦,求解!
這種錯誤原因較多,一個個的排除。
如果你的客戶端和資料庫伺服器是在同一台機器上:
1、可能是資料庫服務沒有啟動
2、可能是有實例名,你沒有寫上實例名,有實例名的聯接是 伺服器名稱/實例名稱
3、沒有安裝上資料庫服務
如果客戶端和伺服器不是在同一台機器上,就是遠程聯接:
1、看一下網路通不通,可以ping一下
2、可能是資料庫服務沒有啟動
2、可能是有實例名,你沒有寫上實例名,有實例名的聯接是 伺服器名稱/實例名稱
3、沒有安裝上資料庫服務
㈧ 遠程訪問SQL時好時壞.怎麼解決
1.
確保伺服器端的資料庫中存在sa,並支持混合登錄模式.默認安裝的時候,可能會忽略建立sa.
2.
確保伺服器端的資料庫是支持遠程調用的.打開SQL
Server
Management
Studio,選擇該資料庫,右鍵菜單"Properties",在打開的對話框中選擇Connections,把Allow
remote
connections
to
this
server選上.
3.
確保伺服器端的SQL服務的TCP/IP是Enable的.打開SQL
Server
Configuration
Manager.
選擇SQL
Server
2005
Network
Configuration下的Protocols
for
SQL2005(
我安裝的SQL示例名為SQL2005),
把Named
Pipes和TCP/IP都修改為Enabled,默認是Disabled.
4.
確保伺服器端的SQL實例的遠程調用是支持TIP/IP和named
pipes的.
打開SQL
Server
Surface
Area
Configuration
Manager,在打開的頁面中選擇Surface
Area
Configuration
for
Services
and
Connections.選中實例的Remote
Connections,把Using
both
TCP/IP
and
named
pipes選中.
5.
重啟伺服器端的SQL
Server
2005服務,確保SQL
Server
Agent和SQL
Server
Browser的服務也啟動了.
默認都是需要手動啟動,可以改成Automatic.
6.
因為伺服器端的操作系統是WinXp+SP2,所以還需要檢查防火牆.確保防火牆中的1433埠打開了.
㈨ 如何使用SSL來確保與SQL Server 2000安全通信
安全套接字層 (SSL) 是一套提供身份驗證、保密性和數據完整性的加密技術。SSL 最常用來在 Web 瀏覽器和 Web 伺服器之間建立安全通信通道。然而,還可以使用 SSL 來保護客戶端應用程序(直接調用方)與 Microsoft® SQL Server™ 2000 之間的通信。
本章介紹如何將 SQL Server 2000 配置為使用 SSL 確保與客戶端應用程序進行安全通信。
您必須了解的背景知識
在開始學習本章之前,您應該知道:
•SSL 是使用 Internet 協議安全性 (IPSec) 來確保資料庫通信安全的替代方法。
有關如何使用 IPSec 確保資料庫通信安全的詳細信息,請參見本指南中的如何使用 IPSec 在兩個伺服器之間進行安全通信。
•當客戶端或伺服器 IP 地址發生更改時,並不需要更改配置。這一點與 IPSec 不同。
•必須在資料庫伺服器計算機上安裝伺服器證書,SSL 才能運行。客戶端計算機上還必須有來自同一機構的根證書頒發機構 (CA) 證書。
•客戶端必須已經安裝了 SQL Server 2000 連接庫。早期版本或通用庫會無法運行。
•SSL 只適用於 TCP/IP(為 SQL Server 推薦採用的通信協議)和命名管道。
•您可以將伺服器配置為對所有連接強制使用加密。
•您可以在客戶端上執行以下操作:
•強制對所有傳出連接進行加密。
•通過使用連接字元串,允許客戶端應用程序選擇是否按連接進行加密。
安裝伺服器驗證證書
SSL 要求伺服器擁有由所連接的客戶端信任的證書頒發機構 (CA) 頒發的伺服器身份驗證證書。
•安裝伺服器證書
1.使用管理員帳戶登錄到資料庫伺服器計算機。
2.啟動 Internet Explorer 並瀏覽到 Microsoft 證書服務,例如:
http://MyCA/certsrv
3.單擊「申請一個證書」,然後單擊「下一步」。
4.單擊「高級申請」,然後單擊「下一步」。
5.單擊「使用表格向這個 CA 提交一個證書申請」,然後單擊「下一步」。
6.填寫證書申請表,指明以下幾點:
1.在「名稱」欄位中,輸入運行 SQL Server 的計算機的完全限定域名。例如:
sql01.nwtraders.com
2.在「預期目的」(或「需要的證書類型」)欄位中,單擊「伺服器身份驗證證書」。
3.對於加密服務提供程序 (CSP),單擊「Microsoft RSA 通道加密提供程序」。
注意:Microsoft 基本加密提供程序 1.0 版和 Microsoft 增強加密提供程序同樣有效。而 Microsoft 強加密提供程序無效。
4.選擇「使用本地機器保存」復選框。
注意:不要選擇「啟用強私鑰保護」。
7.單擊「提交」提交申請。
如果證書伺服器自動頒發證書,則可以立即安裝證書。否則,可以瀏覽到 Microsoft 證書服務並選擇「檢查掛起的證書」,在 CA 管理員頒發證書之後安裝證書。
驗證證書是否已安裝
此過程驗證是否已成功安裝伺服器證書。
•驗證證書是否已安裝
1.單擊任務欄上的「開始」按鈕,然後單擊「運行」。
2.鍵入「mmc」,然後單擊「確定」。
3.在「控制台」菜單上,單擊「添加/刪除管理單元」。
4.單擊「添加」。
5.單擊「證書」,然後單擊「添加」。
6.單擊「計算機帳戶」,然後單擊「下一步」。
7.確保選中了「本地計算機:(運行本控制台的計算機)」,然後單擊「完成」。
8.單擊「關閉」,然後單擊「確定」。
9.在左窗格的樹視圖中,展開「證書(本地計算機)」,展開「個人」,然後選擇「證書」。
10.驗證是否確實有一個證書具有您在前一個過程中指定的完全限定域名。
可以雙擊證書查看它的詳細信息。
在客戶端安裝 CA 頒發的證書
安裝證書並重新啟動 SQL Server 服務後,SQL Server 就可以與客戶端協商 SSL。使用 SSL 連接到 SQL Server 的客戶端必須:
•已安裝 MDAC 2.6 或 SQL Server 2000 連接庫。
•信任 SQL Server 的證書頒發者。
•在客戶端計算機上安裝 CA 頒發的證書
1.以管理員身份登錄到客戶端計算機。
2.啟動 Internet Explorer 並瀏覽到 Microsoft 證書服務,例如:
http://MyCA/certsrv
3.單擊「檢索 CA 證書或證書吊銷列表」,然後單擊「下一步」。
4.單擊「安裝此 CA 證書路徑」,然後在確認對話框中單擊「是」以安裝根證書。
強制所有客戶端使用 SSL
可以將伺服器配置為強制所有客戶端使用 SSL(如此過程所述),或者可以讓客戶端選擇是否按連接使用 SSL(如下一過程所述)。配置伺服器強制客戶端使用 SSL 的優點是:
•保證了所有通信的安全。
•拒絕任何不安全的連接。
缺點是:
•所有客戶端必須安裝了 MDAC 2.6 或 SQL Server 2000 連接庫;早期版本或通用庫將無法連接。
•不需要保護的連接由於額外的加密,性能開銷會有所增加。
•強制所有客戶端使用 SSL
1.在運行 SQL Server 的計算機上,單擊「Microsoft SQL Server」程序組中的「伺服器網路實用工具」。
2.單擊選擇「強制協議加密」。
3.驗證是否啟用了 TCP/IP 和/或命名管道。
其他協議不支持 SSL。
4.單擊「確定」關閉 SQL Server 網路實用工具,然後在「SQL Server 網路實用工具」消息框中單擊「確定」。
5.重新啟動 SQL Server 服務。
所有後續客戶端連接都會被要求使用 SSL,無論它們是否指定安全連接。
允許客戶端決定是否使用 SSL
此過程說明如何配置 SSL 以允許客戶端選擇是否使用 SSL。可以將客戶端庫配置為對於所有連接強制使用 SSL,或者可以讓各應用程序在每個連接的基礎上進行選擇。配置客戶端的優點在於:
•只有確實需要 SSL 的連接才會產生 SSL 系統開銷。
•不支持在 SQL Server 中使用 SSL 的客戶端仍然可以連接。
如果採用此方法,應確保您允許存在不安全的連接。
•重新配置伺服器
1.在運行 SQL Server 的計算機上,運行「伺服器網路實用工具」。
2.清除「強制協議加密」復選框。
3.重新啟動 SQL Server 服務。
4.返回到客戶端計算機。
•對所有客戶端連接使用 SSL
使用這一方法,您可以將客戶端庫配置為對所有連接都使用 SSL。這意味著將不能訪問不支持加密的 SQL Server 和 SQL Server 2000 之前的 SQL Server 版本。
1.在「Microsoft SQL Server」程序組中,單擊「客戶端網路實用工具」。
2.確保啟用了 TCP/IP 和/或命名管道。
3.選擇「強制協議加密」。
•允許應用程序選擇是否使用加密
在此方法中,應用程序使用連接字元串來決定是否使用加密。這允許每個應用程序僅在需要時才使用加密。
1.如果使用 OLE-DB 數據提供程序連接到 SQL Server,請將「對數據使用加密」設置為「true」,如下面的 OLE-DB 連接字元串示例所示。
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=Northwind;Data Source=sql01;Use Encryption for
Data=True"
2.如果使用 SQL Server .NET 數據提供程序連接到 SQL Server,請將「加密」設置為「true」,如下例所示。
"Server=sql01;Integrated Security=SSPI;Persist Security
Info=False;Database=Northwind;Encrypt=True"
驗證通信是否已加密
在此過程中,將使用網路監視器來驗證在應用程序伺服器與資料庫伺服器之間傳送的數據是否已加密。首先以明文形式發送數據,然後通過先配置伺服器,再配置客戶端來啟用加密。
•驗證通信是否已加密
1.在客戶端計算機上,使用 Visual Studio.NET 創建一個名為 SQLSecureClient 的新 C# 控制台應用程序。
2.將下面的代碼復制到 class1.cs,替換所有現有的代碼。
注意:用資料庫伺服器的名稱替換連接字元串中的伺服器名。
using System;
using System.Data;
using System.Data.SqlClient;
namespace SQLSecureClient
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
// 使用您的資料庫伺服器的名稱替換
以下連接
// 字元串中的伺服器名稱
SqlConnection conn = new SqlConnection(
"server='sql01';database=NorthWind;Integrated Security='SSPI'");
SqlCommand cmd = new SqlCommand("Select * FROM
Procts"); try
{
conn.Open();
cmd.Connection = conn;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("{0} {1}",
reader.GetInt32(0).ToString(),
reader.GetString(1) );
}
reader.Close();
}
catch( Exception ex)
{
}
finally
{
conn.Close();
}
}
}
}
3.在「生成」菜單上,單擊「生成解決方案」。
4.為了使兩台計算機之間的 Windows 身份驗證取得成功,必須在資料庫伺服器計算機上復制當前以交互方式登錄到客戶端計算機所用的帳戶。確保用戶名和密碼都匹配。另一種方法是使用兩台計算機都可識別的域帳戶。
還必須使用 SQL Server 企業級管理器為新創建的帳戶創建一個資料庫登錄,並在 Northwind 資料庫中為此登錄添加一個新的資料庫用戶。
5.在資料庫伺服器計算機上,使用 SQL Server 網路實用工具禁用加密(確保未選擇「強制協議加密」選項)。
6.在資料庫伺服器計算機上,單擊「管理工具」程序組中的「網路監視器」。
注意:Windows 2000 Server 提供網路監視器的限製版。Microsoft SMS 提供網路監視器的完全版。
如果您沒有安裝網路監視器,請轉到控制面板中的「添加或刪除程序」,單擊「添加/刪除 Windows 組件」,從「Windows 組件」列表中選擇「管理和監視工具」,單擊「詳細信息」,然後單擊「網路監視工具」。單擊「確定」,然後單擊「下一步」安裝網路監視器的限製版。可能會提示您插入 Windows 2000 Server CD。
7.在「捕獲」菜單上,單擊「篩選」創建新的篩選器,配置它以查看在應用程序伺服器與資料庫伺服器之間發送的 TCP/IP 網路通信。
8.單擊「開始捕獲」按紐。
9.返回到客戶端計算機,然後運行測試控制台應用程序。Northwind 資料庫的產品列表應顯示在控制台窗口中。
10.返回到資料庫伺服器,然後單擊網路監視器中的「停止並查看捕獲」按鈕。
11.雙擊第一個捕獲的幀以查看捕獲的數據。
12.向下滾動以查看捕獲的幀。您應該能看到明文形式的 Select 語句,後面帶有從該資料庫檢索到的產品列表。
13.現在,使用 SQL Server 網路實用工具配置伺服器,強制所有連接使用加密:
1.使用 SQL Server 網路實用工具選擇「強制協議加密」。
2.停止並重新啟動 SQL Server 服務。
14.返回網路監視器並單擊「開始捕獲」按鈕。在「保存文件」對話框中,單擊「否」。
15.返回到客戶端計算機,然後再次運行測試控制台應用程序。
16.返回到資料庫伺服器計算機,然後單擊網路監視器中的「停止並查看捕獲」。
17.確認數據現在已變得難以看懂(因為已加密)。
18.重新配置伺服器,取消強制加密:
1.使用 SQL Server 網路實用工具並清除「強制協議加密」復選框。
2.停止並重新啟動 SQL Server 服務。
19.在網路監視器中開始新的捕獲並重新運行客戶端應用程序。確認數據再次成為明文。
20.返回到客戶端計算機,從「Microsoft SQL Server」程序組中選擇「客戶端網路實用工具」。
21.選擇「強制協議加密」,然後單擊「確定」關閉客戶端網路實用工具。
22.返回網路監視器並單擊「開始捕獲」按鈕。在「保存文件」對話框中,單擊「否」。
23.返回到客戶端計算機,然後再次運行測試控制台應用程序。
24.返回到資料庫伺服器計算機,然後單擊網路監視器中的「停止並查看捕獲」。
25.確認數據現在已經難以看懂(因為已加密)。
請注意,在所有情況下,SQL Server 在通信序列開始時都將其伺服器身份驗證證書以明文形式發送到客戶端。這是 SSL 協議的一部分。還要注意,即使伺服器和客戶端都不需要加密,這也會發生。