keycloak默认什么数据库

fiy 其他 146

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Keycloak是一个开源的身份和访问管理解决方案,它为应用程序和服务提供了强大的身份验证和授权功能。Keycloak支持多种数据库作为其后端存储,但是默认情况下,Keycloak使用H2数据库作为其内嵌数据库。

    H2数据库是一个轻量级的Java数据库,它可以作为Keycloak的默认数据库来存储用户、角色、客户端等信息。H2数据库是一个内存数据库,它可以在Keycloak启动时自动创建,并且所有数据都存储在内存中。这意味着当Keycloak服务停止时,H2数据库中的所有数据将会丢失。

    虽然H2数据库是Keycloak的默认数据库,但在生产环境中,建议将其替换为更可靠和持久的数据库,例如MySQL、PostgreSQL或Oracle等。这样可以确保数据的安全性和可靠性,并且可以提供更好的性能和扩展性。

    要将Keycloak从H2数据库迁移到其他数据库,可以按照以下步骤操作:

    1. 安装和配置目标数据库(例如MySQL)。
    2. 创建一个新的数据库实例,并为Keycloak创建一个新的数据库。
    3. 在Keycloak的配置文件中,修改数据库连接信息,包括数据库类型、主机名、端口号、数据库名称、用户名和密码等。
    4. 将现有的H2数据库中的数据迁移到目标数据库中。
    5. 重新启动Keycloak服务,以便它可以使用新的数据库。

    总之,Keycloak默认使用H2数据库作为其内嵌数据库,但在生产环境中,建议将其替换为更可靠和持久的数据库。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Keycloak默认使用H2数据库。 H2是一个嵌入式数据库,非常适合用于开发和测试环境。它是一个Java编写的内存数据库,具有轻量级、高性能和易于使用的特点。默认情况下,Keycloak会将所有数据存储在H2数据库中。

    但是,H2数据库不适合用于生产环境,因为它不支持高可用性和数据持久化。在生产环境中,建议将Keycloak与其他更强大的数据库集成,如MySQL、PostgreSQL或Oracle数据库。这些数据库具有更好的性能和可靠性,并且可以通过配置Keycloak来使用它们。

    要更改Keycloak的数据库配置,可以编辑Keycloak的配置文件standalone.xml(或standalone-ha.xml),并将以下部分的值更改为所需的数据库类型:

    <subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
        <web-context>auth</web-context>
        <providers>
            <provider>module:org.keycloak.providers.oidc-keycloak-protocol-mappers</provider>
            ...
        </providers>
        <theme>
            <staticMaxAge>2592000</staticMaxAge>
        </theme>
        <spi name="connectionsHttpClient">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="userProfile">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="eventsStore">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="jta-transaction-log">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="jta-transaction-log">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="timer">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="cache">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="connectionsInfinispan">
            <provider name="default" enabled="true"/>
        </spi>
        <spi name="connectionsJpa">
            <provider name="default" enabled="true">
                <properties>
                    <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
                    <property name="initializeEmpty" value="true"/>
                    <property name="migrationStrategy" value="update"/>
                    <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/>
                </properties>
            </provider>
        </spi>
    </subsystem>
    

    在这个配置文件中,可以将<spi name="connectionsJpa">部分的<property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>更改为所需的数据库配置。在此示例中,将数据库类型更改为JPA,并使用名为KeycloakDS的JNDI数据源。

    通过更改此配置并重新启动Keycloak服务器,可以将Keycloak连接到所选的数据库。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Keycloak是一个开源的身份和访问管理解决方案,它提供了一个用于管理用户身份验证、授权和认证的中心化平台。Keycloak可以与多种数据库进行集成,以存储用户、角色、权限和其他相关数据。

    默认情况下,Keycloak使用的是H2数据库作为内嵌数据库。H2是一个轻量级的Java数据库,适用于开发和测试环境。但是,对于生产环境来说,H2并不是一个理想的选择,因为它不支持高可用性、扩展性和持久性。

    如果你希望在生产环境中使用Keycloak,建议将其配置为使用外部数据库。Keycloak支持多种数据库,包括MySQL、PostgreSQL和Oracle等。下面是一些常见数据库的配置示例:

    1. MySQL:

      • 在MySQL中创建一个新的数据库和用户。
      • 将以下配置添加到Keycloak的standalone.xml文件中的<datasources>部分:
        <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true">
            <connection-url>jdbc:mysql://localhost:3306/keycloak?useSSL=false</connection-url>
            <driver>mysql</driver>
            <security>
                <user-name>keycloak</user-name>
                <password>keycloak</password>
            </security>
        </datasource>
        
      • 将MySQL JDBC驱动程序(例如mysql-connector-java.jar)复制到Keycloak的standalone/deployments目录中。
      • 启动Keycloak服务器,它将使用MySQL作为后端数据库。
    2. PostgreSQL:

      • 在PostgreSQL中创建一个新的数据库和用户。
      • 将以下配置添加到Keycloak的standalone.xml文件中的<datasources>部分:
        <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true">
            <connection-url>jdbc:postgresql://localhost:5432/keycloak</connection-url>
            <driver>postgresql</driver>
            <security>
                <user-name>keycloak</user-name>
                <password>keycloak</password>
            </security>
        </datasource>
        
      • 将PostgreSQL JDBC驱动程序(例如postgresql.jar)复制到Keycloak的standalone/deployments目录中。
      • 启动Keycloak服务器,它将使用PostgreSQL作为后端数据库。
    3. Oracle:

      • 在Oracle数据库中创建一个新的用户和表空间。
      • 将以下配置添加到Keycloak的standalone.xml文件中的<datasources>部分:
        <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true">
            <connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url>
            <driver>oracle</driver>
            <security>
                <user-name>keycloak</user-name>
                <password>keycloak</password>
            </security>
        </datasource>
        
      • 将Oracle JDBC驱动程序(例如ojdbc.jar)复制到Keycloak的standalone/deployments目录中。
      • 启动Keycloak服务器,它将使用Oracle作为后端数据库。

    以上是一些常见数据库的配置示例,你可以根据自己的需求选择适合的数据库。配置完成后,Keycloak将使用所选的数据库作为后端存储。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部