使用密碼保護資料庫
SQL Server Compact Database Engine 可讓您強制執行在存取本機資料庫時,必須提供密碼的動作。在 SQL Server Compact 中,會為受保護的資料庫建立一個密碼。但不會為資料庫的每一位使用者建立密碼。SQL Server Compact 資料庫的密碼應該為增強式密碼。密碼應該包含下列特性:
最長可含 40 個字元。
可包含字母、符號、數字或這三者的組合。
無法復原。
注意
密碼無法防止以純文字的方式讀取資料庫檔案中的任何資料。同時使用加密和密碼,可用加密格式儲存資料,並限制以程式設計的方式存取資料庫。
建立密碼保護的資料庫
在建立資料庫時提供密碼屬性,就可以建立密碼保護的資料庫。密碼保護的資料庫可用下列方法建立︰
使用 SQL 語法
若要透過 SQL 語法建立密碼保護的資料庫,請在 CREATE DATABASE 陳述式中指定資料庫密碼。密碼必須跟隨在 DATABASEPASSWORD 關鍵字之後,並用單引號括起來,如下列範例所示︰
CREATE DATABASE "secure.sdf" DATABASEPASSWORD '<enterStrongPasswordHere>'
使用 ADO.NET
若要使用 SqlCeEngine.CreateDatabase 方法建立密碼保護的資料庫,必須在連接字串中指定密碼屬性,如下列範例所示︰
"data source=\ssce.sdf; password=<enterStrongPasswordHere>"
如需詳細資訊,請參閱 Visual Studio 中 .NET Compact Framework 軟體開發套件 (SDK) 的 System.Data.SqlServerCe.SqlCeEngine 類別。
使用 OLE DB
若要使用 SQL Server Compact 的 OLE DB 提供者建立加密的資料庫,您必須使用提供者特定的屬性 DBPROP_SSCE_ENCRYPTIONMODE 指定加密模式,並且使用提供者特定的屬性 DBPROP_SSCE_DBPASSWORD 指定密碼。
存取密碼保護的資料庫
開啟密碼保護的資料庫時,必須提供密碼。密碼保護的資料庫可用下列方法存取︰
使用 SQL Server Compact 的資料提供者
若要使用 SqlCeConnection.Open 方法存取密碼保護的資料庫,必須在連接字串中指定密碼屬性。例如:
"data source=\ssce.sdf; password=<enterStrongPasswordHere>"
如需詳細資訊,請參閱 Visual Studio 中 .NET Compact Framework SDK 的System.Data.SqlServerCe.SqlCeConnection 類別。
使用 OLE DB
SQL Server Compact 支援檔案層級存取控制機制,這需要提供密碼才可以存取密碼保護的 SQL Server Compact 資料庫。每次開啟資料庫時,都必須提供此密碼。使用提供者特定屬性集 DBPROPSET_SSCE_DBINIT 中的 DBPROP_SSCE_DBPASSWORD 屬性來指定此密碼。建立資料庫時,可利用此屬性來指定資料庫的密碼。加密的資料庫永遠受到密碼保護。