使用密码保护数据库

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库引擎 允许在访问本地数据库时强制要求提供密码。在 SQL Server Compact Edition 中,密码是针对受保护的数据库创建的。密码并不是针对数据库的每位用户而创建的。SQL Server Compact Edition 数据库的密码具有下列特点:

  • 最长可以为 40 个字符。
  • 可以包含字母、符号、数字或它们的任意组合。
  • 不可恢复。
注意:
密码不会防止以明文形式读取数据库文件中的任何数据。通过使用加密与密码,您可以用加密格式存储数据,并限制以编程方式访问数据库。

创建受密码保护的数据库

通过在创建数据库时提供密码属性,即可创建受密码保护的数据库。创建受密码保护的数据库的方法有:

  • 使用 SQL 语法
    若要使用 SQL 语法创建受密码保护的数据库,请在 CREATE DATABASE 语句中指定数据库密码。密码必须跟在 DATABASEPASSWORD 关键字后,并包含在单引号内,如下例所示:

    CREATE DATABASE "secure.sdf" DATABASEPASSWORD '<myPassword>'
    
  • 使用 ADO .NET
    若要通过使用 SqlCeEngine.CreateDatabase 方法创建受密码保护的数据库,则必须在连接字符串中指定密码属性,如下例所示:

    "data source=\ssce.sdf; password=<myPassword>"
    

    有关详细信息,请参阅 Microsoft Visual Studio 2005 中的 Microsoft .NET Compact Framework 软件开发工具包 (SDK) 中的 System.Data.SqlServerCe.SqlCeEngine 类。

  • 使用 OLE DB
    若要通过使用 OLE DB Provider for SQL Server Compact Edition 创建加密数据库,您必须将访问接口特定的属性 DBPROP_SSCE_ENCRYPTDATABASE 设为 VARIANT_TRUE,并使用访问接口特定的属性 DBPROP_SSCE_DBPASSWORD 指定密码。

访问受密码保护的数据库

必须输入密码才能打开受密码保护的数据库。访问受密码保护的数据库的方法有:

  • 使用 SQL Server Compact Edition 的数据访问接口
    若要通过使用 SqlCeConnection.Open 方法访问受密码保护的数据库,您必须在连接字符串中指定密码属性。例如:

    "data source=\ssce.sdf; password=<myPassword>"
    

    有关详细信息,请参阅 Visual Studio 2005 中 .NET Compact Framework SDK 中的 System.Data.SqlServerCe.SqlCeConnection 类。

  • 使用 OLE DB
    SQL Server Compact Edition 支持的文件级访问控制机制要求在访问受密码保护的 SQL Server Compact Edition 数据库时必须提供密码。每次打开数据库时都必须输入密码。使用 DBPROPSET_SSCE_DBINIT 访问接口特定属性集中的 DBPROP_SSCE_DBPASSWORD 属性可指定密码。在创建数据库时,可以使用此属性为数据库指定数据库密码。加密数据库始终是受密码保护的。

请参阅

帮助和信息

获取 SQL Server Compact Edition 帮助