The documentation you are viewing is for Dapr v1.6 which is an older version of Dapr. For up-to-date documentation, see the latest version.

SQL Server

SQL Server 状态存储组件的详细信息

配置

要设置 SQL Server 状态存储,请创建个类型为 state.sqlserver 的组件。 请参阅本指南,了解如何创建和应用状态存储配置。

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
  namespace: <NAMESPACE>
spec:
  type: state.sqlserver
  version: v1
  metadata:
  - name: connectionString
    value: <REPLACE-WITH-CONNECTION-STRING> # Required.
  - name: tableName
    value: <REPLACE-WITH-TABLE-NAME>  # Optional. defaults to "state"
  - name: keyType
    value: <REPLACE-WITH-KEY-TYPE>  # Optional. defaults to "string"
  - name: keyLength
    value: <KEY-LENGTH> # Optional. 默认值为 200。 Yo be used with "string" keyType
  - name: schema
    value: <SCHEMA> # Optional. defaults to "dbo"
  - name: indexedProperties
    value: <INDEXED-PROPERTIES> # Optional. 索引属性列表。

如果您想要使用 SQL Server 作为 actor 状态存储 ,请在 yaml 上附上以下内容。

  - name: actorStateStore
    value: "true"

元数据字段规范

字段 必填 详情 示例
connectionString Y 用于连接的连接字符串。 如果连接字符串包含数据库,则该数据库必须已存在。 如果数据库被省略,将会创建一个名为 "Dapr" 的默认数据库。 "Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;"
tableName 要使用的表名称。 带下划线的字母数字。 默认值为 "state" "table_name"
keyType 键使用的数据类型。 默认为 "string" "string"
keyLength 键的最大长度。 与 "string" keyType 一起使用。 默认值为 "200" "200"
schema N 要使用的schema名称。 默认为 "dbo" "dapr","dbo"
indexedProperties N 索引属性列表。 '[{"column": "transactionid", "property": "id", "type": "int"}, {"column": "customerid", "property": "customer", "type": "nvarchar(100)"}]'
actorStateStore N 指示 Dapr 是否应该将为 actor 状态存储配置该组件 (更多信息)。 "true"

创建 Azure SQL 实例

Follow the instructions from the Azure documentation on how to create a SQL database. The database must be created before Dapr consumes it. The database must be created before Dapr consumes it. 必须在 Dapr 使用数据库之前创建数据库。

注意:SQL Server 状态存储还支持在 VM 和 Docker 中运行 SQL Server。

为了配置 SQL Server 作为状态存储,您需要如下属性:

  • Connection String: SQL Server 连接字符串。 例如: server=localhost;user id=sa;password=your-password;port=1433;database=mydatabase;
  • Schema: 要使用的数据库模式 (default=dbo). 如果不存在将会被创建
  • Table Name: 数据库表名称。 如果不存在将会被创建
  • Indexed Properties: json 数据的可选属性,这些属性将会作为独立的列进行索引的保存

创建专用用户

当使用专用用户 (不是 sa) 进行连接, 用户需要这些授权 - 即使该用户是所需数据的模式的所有者:

  • CREATE TABLE
  • CREATE TYPE

相关链接