lightdb 普通用户拥有XMLTYPE类型的访问权限

文章目录

概述

在信创移植的SQL语句中,有来源于Oracle数据库的SQL语句。

在Oracle中存在getClobVal函数,这个函数是Oracle中sys.XMLType的成员方法。

因此在LightDB23.3版本中实现了TYPE支持定义成员方法并且在新定义的XMLType类型中实现getClobVal成员方法。

但是实际场景是普通用户需要默认有XMLType.getClobValue的执行权限,无需另外进行授权。对此 LightDB 23.3.02增量版本进行了支持。

示例

使用ltsql进行命令行

构建数据库

复制代码
create database test_oracle with lightdb_syntax_compatible_type  oracle;
\c test_oracle
select dbms_output.serveroutput(true);

构建用户

复制代码
create user u106761 with password 'Test01@123';

切换到普通用户

复制代码
set role u106761;

创建表

复制代码
CREATE TABLE xml_table (
    id NUMBER,
    xml_column XMLType
);
INSERT INTO xml_table (id, xml_column)
VALUES (1, XMLType('<root><name>John</name></root>'));

使用XMLType

复制代码
DECLARE
    v_clob CLOB;
BEGIN
    SELECT XMLType.getClobVal(xml_column) INTO v_clob FROM xml_table WHERE id = 1;
    DBMS_OUTPUT.PUT_LINE('CLOB value: ' || v_clob);
END;
/

CLOB value: <root><name>John</name></root>
DO

总结

普通用户可以正常调用XMLType的成员方法,不会报权限错误。

相关推荐
马克Markorg4 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
Coder_Boy_7 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy7 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道8 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_12498707538 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha8 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_9 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance9 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋9 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.9 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库