微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Liquibase 创建/更改数据库用户

如何解决Liquibase 创建/更改数据库用户

我想使用 Liquibase 创建和更改数据库用户。以下是针对 Oracle DB 执行此操作的 sql 查询

change password:
ALTER USER ADMIN IDENTIFIED BY ${user.password};
create user:
CREATE USER appuser IDENTIFIED BY ${user.password};

我想将密码参数化,但 changelog Property Substitutionsql 格式中不可用。

我选择 XML 作为后备选项,但无法将上述查询转换为 Liquibase XML 格式。我需要帮助将更改/创建用户查询转换为 XML。

解决方法

您可以在 XML 变更集中使用 SQL 标记,并使用该标记编写任何 SQL 查询,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">

    <changeSet author="authorName" id="some-unique-id" dbms="${dbType}">
       <sql endDelimiter=";" splitStatements="true" stripComments="true">
            **My SQL query/ transactional logic goes here**
            CREATE USER appuser IDENTIFIED BY ${user.password};
       </sql>
    </changeSet>
    
</databaseChangeLog>

然后您可以将 Liquibase 更改日志属性替换与密码值一起使用。使用 SQL 标记将允许您执行任何 SQL 查询(当然以正确的语法),而不必担心 liquibase 变更集的 XML 语法。

有关属性替换的更多详细信息,请查看我在 this post

上的回答

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。