如何解决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 Substitution
在 sql 格式中不可用。
我选择 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 举报,一经查实,本站将立刻删除。